嗨,请帮帮我。如何使用空值连接3列?
SELECT [item],[Prox],[z], [item]+[Prox]+[z] as result FROM [FIELD$];
结果。
答案 0 :(得分:2)
试试这个:
SELECT [item],[Prox],[z], COALESCE([item],'')+COALESCE([Prox],'')+COALESCE([z],'') as result
FROM [FIELD$];
<强>解释强>
COALESCE
按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值。
即如果[item]
为NULL
,那么COALESCE([item],'')
将返回一个空字符串。
其他替代方案:
而不是COALESCE(ColName,'')
,您可以使用:
ISNULL(ColName,'')
SQL Server
。
IFNULL(ColName,'')
MySQL
。
NVL(ColName,'')
Oracle
。
答案 1 :(得分:1)
由于将多个字符串与至少一个空值连接在一起导致NULL
,您可以使用coalesce
来解决此问题:
SELECT
[item],
[Prox],
[z],
coalesce([item], '') + coalesce([Prox], '') + coalesce([z], '') as result
FROM
[FIELD$];
coalesce
是ANSI标准,几乎在所有合理的数据库中都可用。
答案 2 :(得分:1)
在SQL Server 2012中,您可以使用CONCAT功能:
SELECT [item],[Prox],[z], concat([item],[Prox],[z]) as result FROM [FIELD$];