我有以下SQL语句:

@All = COALESCE(NULLIF(@Asc1, '') + ',', '') +
        OALESCE(NULLIF(@Asc2, '') + ',', '') +
        OALESCE(NULLIF(@Asc3, '') + ',', '');

即使任何变量(@Asc1@Asc2@Asc3)具有NULL或空值,这也将在末尾插入逗号。

例如:
  • 如果@Asc1 = 1234@Asc2 = 3456@Asc3 = '',那么@All将最终成为1234,3456,

  • 我希望@All1234,3456
    谢谢。

    最佳答案

    使用stuff()删除第一个逗号并反转逗号串联:

    set @all = stuff(
        coalesce(','+nullif(@Asc1, ''), '')
      + coalesce(','+nullif(@Asc2, ''), '')
      + coalesce(','+nullif(@Asc3, ''), '')
      ,1,1,'');
    

    上个月的演示:http://rextester.com/UNDS90887

    返回:1234,3456

    07-28 00:02