用于格式化结果的SQL查询

时间:2011-02-14 15:06:24

标签: sql sql-server-2005 formatting

我有以下格式的数据:

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 个答案:

答案 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