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
另请注意 COALESCE
和 ISNULL
之间的区别:
DECLARE @a CHAR(1)
SELECT ISNULL(@a, 'NULL') /*N*/, COALESCE(@a, 'NULL') /*NULL*/
我正在为某个外部系统创建视图。此外部系统不适用于空值,因此我想将它们更改为更用户友好的值,例如“”。
我使用这个查询来创建我的视图:
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
另请注意 COALESCE
和 ISNULL
之间的区别:
DECLARE @a CHAR(1)
SELECT ISNULL(@a, 'NULL') /*N*/, COALESCE(@a, 'NULL') /*NULL*/