我有以下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
谢谢。
最佳答案
使用stuff()
删除第一个逗号并反转逗号串联:
set @all = stuff(
coalesce(','+nullif(@Asc1, ''), '')
+ coalesce(','+nullif(@Asc2, ''), '')
+ coalesce(','+nullif(@Asc3, ''), '')
,1,1,'');
上个月的演示:http://rextester.com/UNDS90887
返回:
1234,3456