在Tsql中连接空值列

jha*_*ash 10 t-sql sql-server

+用来连接几个列的值.但+如果其中一列具有空值,则无效.例如

Select null+ 'Test'
Run Code Online (Sandbox Code Playgroud)

查询返回null而不是'Test'.

你有什么建议来解决这个问题?

Mar*_*ith 19

在SQL Server 2012之前的版本上,您应该使用

   Select ISNULL(YourColumn,'') + 'Test' /*Or COALESCE(YourColumn,'')*/
Run Code Online (Sandbox Code Playgroud)

避免这个问题.

有一个连接选项SET CONCAT_NULL_YIELDS_NULL OFF但不推荐使用.

SQL Server 2012引入了在连接时CONCAT将其NULL视为空字符串的功能.

SELECT CONCAT(null,'Test')
Run Code Online (Sandbox Code Playgroud)