我有以下 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,'');
reextester 演示:http://rextester.com/UNDS90887
返回:
1234,3456
关于sql-server - 仅当列不为空时才用逗号分隔 SQL Server 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189214/