Конкатенация строк, содержащих значения NULL - PullRequest
1 голос
/ 22 марта 2011

Я хочу объединить строку

Я хочу вывод, подобный этому:

NEX-SYM-VIM-CRE

Если ввод NEX-NULL-NULL-VRE, он получается NEX---CRE или ---CREили NEX---, поскольку я заменил NULL на -

Но объединение для получения окончательного результата, подобного NEX-SYM, не приходит

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Всегда добавляйте - символ-разделитель справа, но только когда есть значение:

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

, тогда вам всегда нужно обрезать последний символ (будет - символ-разделитель)если результат не будет NULL.

2 голосов
/ 22 марта 2011

Как то так?

ISNULL(NEX,'-') + '-' + ISNULL(SYM,'-') + '-' + ISNULL(VIM,'-') + '-' + ISNULL(CRE,'-')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...