我有以下SQL语句:
@All = COALESCE(NULLIF(@Asc1, '') + ',', '') +
OALESCE(NULLIF(@Asc2, '') + ',', '') +
OALESCE(NULLIF(@Asc3, '') + ',', '');
即使任何变量(@Asc1
,@Asc2
,@Asc3
)具有NULL值或空值,也会在末尾插入逗号。
例如:
@Asc1 = 1234
和@Asc2 = 3456
以及@Asc3 = ''
,那么@All
将最终成为1234,3456,
我希望@All
成为1234,3456
感谢。
答案 0 :(得分:4)
使用stuff()
删除第一个逗号并撤消逗号连接:
set @all = stuff(
coalesce(','+nullif(@Asc1, ''), '')
+ coalesce(','+nullif(@Asc2, ''), '')
+ coalesce(','+nullif(@Asc3, ''), '')
,1,1,'');
rextester演示:http://rextester.com/UNDS90887
返回:1234,3456
答案 1 :(得分:0)
我知道这篇文章已经回答并且是正确的。但是想发布以下答案,因为从SQL Server 2017开始,这太容易了,someoen可能会发现这对将来有用。
SELECT @all = CONCAT_WS(',',@Asc1,@Asc2,@Asc3)