我正在尝试在SQL Server 11.00.3393中的查询中连接多个列。
我尝试了新功能,CONCAT()但是当我使用两个以上的列时,它不起作用。
CONCAT()
所以我想知道这是否是解决问题的最佳方法:
SELECT CONCAT(CONCAT(CONCAT(COLUMN1,COLUMN2),COLUMN3),COLUMN4) FROM myTable
COLUMN1 + COLUMN2由于NULL价值我不能使用。
COLUMN1 + COLUMN2
NULL
编辑
如果我尝试SELECT CONCAT('1','2','3') AS RESULT我会得到一个错误
SELECT CONCAT('1','2','3') AS RESULT
CONCAT函数需要2个参数
通过讨论,很明显,问题出在使用VS2010编写查询,因为它使用了CONCAT()受限于2个参数的规范函数。可能有一种方法可以更改它,但我不知道。
替代:
SELECT '1'+'2'+'3'
这种方法需要将非字符串值强制转换/转换为字符串,以及NULL通过ISNULL()或进行处理COALESCE():
ISNULL()
COALESCE()
SELECT ISNULL(CAST(Col1 AS VARCHAR(50)),'') + COALESCE(CONVERT(VARCHAR(50),Col2),'')