У меня есть большой, грязный отчет для записи, который объединяется через 5 таблиц. В одной таблице используется один столбец, который используется для нескольких разных значений - по существу столбца «тег», где теги используются творчески, в зависимости от того, какие разные метаданные пользователи хотят использовать.Устранение NULL при использовании CASE в SQL Server SELECT statement
В результате мой запрос для отчета возвращает 3 почти одинаковых строки, которые отличаются только столбцом «тег»; например, я мог бы получить:
NAME TAG EMAIL
BOB A [email protected]
BOB B [email protected]
BOB C [email protected]
То, что я хотел бы сделать, это разделить содержимое столбца TAG для возвращения в виде 3-х отдельных столбцов из запроса, как это:
NAME A B C EMAIL
BOB A B C [email protected]
Поэтому я попытался использовать функциональность SQL SERVER CASE/WHEN для этого; Я говорю, например, когда значение столбца Tag является «A», верните его в столбце «A»; если это «B», положите его в «B»; и т. д. Я думал, что это вернет вышеизложенное, но вместо этого оно дает мне следующее:
NAME A B C EMAIL
BOB A NULL NULL [email protected]
BOB NULL B NULL [email protected]
BOB NULL NULL C [email protected]
Это явно не идеальное.
Любые мысли, гении переполнения стека?
Думаю, я понимаю, почему это помогает, но можете ли вы это объяснить? Я извиняюсь за свое вопиющее невежество. – SuperNES
Отредактированный ответ, чтобы добавить объяснения .. –