Как сделать так, чтобы значения в строках отображались в виде столбцов на основе уникального значения - PullRequest
0 голосов
/ 16 мая 2019

Я хочу, чтобы следующие элементы отображались в виде столбцов на основе проверки нет в SQL.Пожалуйста, помогите

Check No    Item Name
-----------------------------------
1010000001  3/4 Time Session Ale
1010000001  Aquilani Gls
1010000001  Australian Psycho 50L
1010000001  Bloody Mary
1010000001  Brookvale Ginger Beer
1010000001  Buffalo Trace
1010000001  Café Latte
1010000001  Cake Sparkling Gls
1010000001  Cap
1010000001  Capi Blood Orange
1010000001  Capi Dry Ginger
1010000002  Capi Pink Grapefruit
1010000002  Capi Soda
1010000002  Capi Sparkling Mineral
1010000002  Capi Yuzu
1010000002  Cappucino
1010000002  Carlton Draught
1010000002  Catalina Sounds Gls
1010000002  Chicken Taco
1010000002  Chivas Regal 12 Yr
1010000002  Coke
1010000002  Corona

Ожидаемый результат:

Check No   Item Name
---------------------------------------------------
1010000001 3/4 Time Session Ale Aquilani Gls Australian Psycho 50L etc...

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Следующий запрос вернет ожидаемый результат:

SELECT [Check No], 
       Items = STUFF((SELECT ', ' + [Item Name]
                      FROM TableName AS T1
                      WHERE T1.[Check No] = T2.[Check No]
                      FOR XML PATH(''), TYPE).value('.[1]', 'varchar(max)'), 1, 2, '')
FROM TableName AS T2
GROUP BY [Check No];
0 голосов
/ 16 мая 2019

Понятно, вы хотите присоединить строки Item name, когда они имеют одинаковое значение Check No, так какую базу данных вы сейчас используете? если вы используете PostgreSQL, вы можете просто использовать функцию array_agg для реализации этого, как показано ниже:

select
    check_no,
    array_to_string(array_agg(item_name),' ') as result
from
    your_table_name
group by
    check_no
...