sql создать столбец на основе других столбцов с существующими значениями - PullRequest
0 голосов
/ 29 июня 2018

Мне нужна помощь t-sql для создания столбца Grp в таблице ниже. По сути, мне нужно создать столбец, в котором указывается, когда значение существует, если оно пустое, а затем исключить его из столбца «Grp». Таблица является примером моего конечного результата (сейчас существует только Col1, Col2, Col3)

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Используйте несколько CASE выражений с STUFF, чтобы удалить ведущий -.

SELECT
    STUFF(
        (
            CASE WHEN T.Col1 IS NOT NULL THEN '-Col1' ELSE '' END +
            CASE WHEN T.Col2 IS NOT NULL THEN '-Col2' ELSE '' END +
            CASE WHEN T.Col3 IS NOT NULL THEN '-Col3' ELSE '' END 
        ),
        1, 1, ''),
    T.Col1,
    T.Col2,
    T.Col3
FROM
    YourTable AS T
0 голосов
/ 29 июня 2018

Можно использовать случай, когда выписка:

select 
  left(t.Grp,len(Grp)-1) as Grp,
  t.col1,t.col2,t.col3
from (    
  select col1, col2, col3,
    case when col1 is null then '' else 'col1-' +
    case when col2 is null then '' else 'col2-' +
    case when col3 is null then '' else 'col3-'
    as Grp
  from your_table
  ) t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...