我有以下格式的数据:
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。
答案 0 :(得分:5)
由于您没有指定您正在使用的数据库系统 - 这是在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