连接包含NULL值的字符串

时间:2011-03-22 09:08:10

标签: sql sql-server-2005

我想连接一个字符串

我想要这样的输出:

NEX-SYM-VIM-CRE

如果输入为NEX-NULL-NULL-VRE,则表示NEX---CRE---CRENEX---,因为我已将NULL替换为-

但要获得像NEX-SYM这样的最终结果的连接不会出现

2 个答案:

答案 0 :(得分:2)

这样的东西?

ISNULL(NEX,'-') + '-' + ISNULL(SYM,'-') + '-' + ISNULL(VIM,'-') + '-' + ISNULL(CRE,'-')

答案 1 :(得分:2)

始终在右侧添加-分隔符,但仅在有值时添加:

NULLIF(
       COALESCE(NEX + '-', '') 
          + COALESCE(SYM + '-', '') 
          + COALESCE(VIM + '-', '') 
          + COALESCE(CRE + '-', ''), ''
      )

然后你总是需要修剪最后一个字符(将是一个-分隔字符),除非结果是NULL