SQL 基于 JOIN 两个表的服务器视图 - 如何用空格替换 NULL 值?

SQL Server view based on JOIN two tables - how to replace NULL values with spaces?

我正在为某个外部系统创建视图。此外部系统不适用于空值,因此我想将它们更改为更用户友好的值,例如“”。

我使用这个查询来创建我的视图:

CREATE VIEW SomeView 
AS
   SELECT 
       r.CountryRegionCode, r.Name, e.ExampleData
   FROM 
       AdventureWorks2008.Person.CountryRegion r
   JOIN 
       AdventureWorks2008.dbo.SomeTable e ON r.CountryRegionCode = e.CountryRegionCode

本次查询结果为:

据我了解,我可以使用 ISNULL 运算符将 NULL 替换为 space,但如何在我的语句中使用它?正确的做法:

SELECT 
    ISNULL (r.CountryRegionCode, 0) AS r.CountryRegionCode
     -- ..

?

更新: 不明白r是什么:

更新#2:非常感谢你们!最终结果:

SELECT 
    CountryRegionCode = ISNULL(r.CountryRegionCode, ''),
    Name = ISNULL(r.Name,''),
    ExampleData = ISNULL(e.ExampleData,'')
FROM 
    AdventureWorks2008.Person.CountryRegion r
JOIN 
    AdventureWorks2008.dbo.SomeTable e ON r.CountryRegionCode = e.CountryRegionCode
SELECT ISNULL(r.CountryRegionCode,' ') AS CountryRegionCode

r 是一个 table 别名。如果要获取列名 r.CountryRegionCode 需要引用它们:[r.CountryRegionCode]

CREATE VIEW SomeView
AS
    SELECT CountryRegionCode = ISNULL(r.CountryRegionCode, ' '), -- COALESCE(r.CountryRegionCode, ' ')
           r.name,
           e.ExampleData
    FROM AdventureWorks2008.Person.CountryRegion r
    JOIN AdventureWorks2008.dbo.SomeTable e ON r.CountryRegionCode = e.CountryRegionCode

另请注意 COALESCEISNULL 之间的区别:

DECLARE @a CHAR(1)
SELECT ISNULL(@a, 'NULL') /*N*/, COALESCE(@a, 'NULL') /*NULL*/