Отдельные значения в столбцах - PullRequest
0 голосов
/ 13 февраля 2020

Привет, я новичок в SQL. У меня есть таблица (TABLE1) с двумя столбцами, как показано ниже

Name age
--------
jim  18
jim  21
dave 18
dave 18
john 23
john 41

Мне нужно создать представление в SSMS, которое перечисляет различные возрасты для каждого имени в отдельном столбце, как показано ниже

Jim  Dave  John
---------------
18   18     23
21          41

Я пробовал подзапрос, такой как

SELECT DISTINCT AGE FROM TABLE1 WHERE NAME = JIM

Но я обнаружил, что подзапрос не может возвращать более одного значения.

1 Ответ

1 голос
/ 13 февраля 2020

Вы можете использовать row_number() и сделать агрегацию:

select max(case when name = 'jim' then age end) as jim,
       max(case when name = 'dave' then age end) as dave,
       max(case when name = 'john' then age end) as john
from (select t.*, row_number() over (partition by name order by age) as seq
      from table t
     ) t
group by seq;
...