Sum*_*jee 2 sql sql-server sql-server-2008
数据集如下:
FirstName LastName city street housenum
john silver london ukitgam 780/19
gret garbo berlin akstrass 102
le chen berlin oppenhaim NULL
daniel defo rome corso vinchi 25
maggi forth london bolken str NULL
voich lutz paris pinchi platz NULL
anna poperplatz milan via domani 15/4
Run Code Online (Sandbox Code Playgroud)
写下面的查询:
SELECT Trim(a.FirstName) & ' ' & Trim(a.LastName) AS employee_name,
a.city, a.street + ' ' + a.housenum AS address
FROM Employees AS a
Run Code Online (Sandbox Code Playgroud)
结果如下:
employee_name city address
john silver london ukitgam 780/19
gret garbo berlin akstrass 102
le chen berlin NULL
daniel defo rome corso vinchi 25
maggi forth london NULL
voich lutz paris NULL
anna poperplatz milan via domani 15/4
Run Code Online (Sandbox Code Playgroud)
但我想要这个:
employee_name city address
john silver london ukitgam 780/19
gret garbo berlin akstrass 102
le chen berlin oppenhaim
daniel defo rome corso vinchi 25
maggi forth london bolken str
voich lutz paris pinchi platz
anna poperplatz milan via domani 15/4
Run Code Online (Sandbox Code Playgroud)
请帮我.
只需对列使用ISNULL()函数housenum.
SELECT Trim(a.FirstName) & ' ' & Trim(a.LastName) AS employee_name,
a.city, a.street + ' ' + ISNULL(a.housenum,'') AS address
FROM Employees AS a
Run Code Online (Sandbox Code Playgroud)
当你得到的地址作为NULL housenum列值为NULL,因为NULL与任何东西连接起来给NULL作为最终结果.
正如在其他答案中发布的那样,您也可以使用COALESCE()来处理NULL值.
COALESCE符合SQL '92标准,并受更多不同数据库的支持.另一方面,ISNULL()仅在SQL Server中提供,因此不太可移植.