首页 > 解决方案 > 连接时排除空条目

问题描述

我有专栏

Col1|Col2|Col3
Aaaa|Bbbb|Cccc
Null|Bbbb|Cccc
Aaaa|Bbbb|Null

我的结果应该看起来像

Aaaa,Bbbb,Cccc
Bbbb,Cccc
Aaaa,Bbbb

我用常见的“+”连接方式尝试了这个,比如

Select Col1 + ', ' + Col2 + ', ' + Col3 

但是使用此语句,如果其中一列中有 Null,我确实会在结果集中得到 Null。我可以做类似的事情

ISNULL(Col1, ' ') 

但这最终导致','标志乱七八糟

有谁可以帮我离开这里吗?

标签: sqlsql-server

解决方案


CONCAT()功能解决了您的问题:

Select CONCAT(Col1, ', ', Col2, ', ', Col3)

它忽略了NULL价值观。

最新版本的 SQL Server 支持CONCAT_WS()

CONCAT_WS(', ', col1, col2, col3)

这会产生略有不同的结果。例如,如果后两个值是NULL,则第一个返回'A,,'但第二个返回'A'。我不确定你真正想要的是哪个。


推荐阅读