我使用+
来连接多个列的值。但是,如果其中一列具有空值,则+
不起作用。例如
Select null+ 'Test'
查询返回null而不是'Test'。
您有什么建议来解决这个问题?
答案 0 :(得分:18)
在SQL Server 2012之前的版本上,您应该使用
Select ISNULL(YourColumn,'') + 'Test' /*Or COALESCE(YourColumn,'')*/
避免这个问题。
有一个连接选项SET CONCAT_NULL_YIELDS_NULL OFF
,但已弃用。
SQL Server 2012引入了CONCAT
函数,该函数在连接时将NULL
视为空字符串。
SELECT CONCAT(null,'Test')
答案 1 :(得分:0)
使用IsNull:
SELECT IsNull(MyColumn, '') + 'Test' ...