Создайте результат со строками с одинаковыми идентификаторами в столбцах на сервере SQL - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть таблица базы данных сервера Microsoft SQL, например:

enter image description here

И я пытаюсь создать представление таким образом, чтобы строки с одинаковыми значениями из , сгруппированными вместе, и значения типа A и типа B расположены в виде столбцов, как показано ниже:

enter image description here

Я пытался использовать несколько методов группировки и поворота, но я мог получить только значения через запятую, как показано ниже:

enter image description here

Есть ли способ на SQL сервере, чтобы я мог эффективно достичь результата, ориентированного на столбцы?

1 Ответ

2 голосов
/ 16 апреля 2020

Вы можете сделать условное агрегирование:

select
    [from],
    max(case when type = 'A' then val end) typeA,
    max(case when type = 'B' then val end) typeB
from mytable
group by [from]

Обратите внимание, что from является зарезервированным словом во всех SQL диалектах, поэтому не является хорошим выбором для имени столбца.

...