SQL-запрос для форматирования результата - PullRequest
2 голосов
/ 14 февраля 2011

У меня есть данные в следующем формате:

24  Asian Fish
24  Atlantis
24  Bakery
24  Bistro
24  Bon Appetite
24  Camo
24  Fish Bones
25  Black
38  Black
38  Burgundy
38  Dark Green
38  Navy
38  Red

Не могли бы вы предложить, какой запрос можно использовать для его форматирования следующим образом:

24       Asian Fish|Atlantis|Bakery|Bistro|Bon Appetite|Camo|Fish Bones
25       Black
38       Black|Burgundy|Dark Green|Navy|Red

Это для SQL Server 2005.

1 Ответ

5 голосов
/ 14 февраля 2011

Поскольку вы не указали, какую систему базы данных вы используете - вот один из способов сделать это в SQL Server (2005 и более поздних версиях):

SELECT 
    DISTINCT ID,
    STUFF((SELECT '|' + t2.Fishy
     FROM dbo.YourTable t2
     WHERE t2.ID = t.ID
     FOR XML PATH('')), 1, 1, '') 'Fishes'
FROM dbo.YourTable t

Это приведет к выводу:

ID  Fishes
24  Asian Fish|Atlantis|Bakery|Bistro|Bon Appetite|Camo|Fish Bones
25  Black
38  Black|Burgundy|Dark Green|Navy|Red
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...