【问题标题】:agreegation or pivot query in MS SQLMYSQL 中的聚合或透视查询
【发布时间】:2014-04-10 14:49:01
【问题描述】:

我有记录

ID      zone
1         A
1         B
2         C
2         D
2         E
3         F

我想要这样的结果

ID        zones
1         A/B
2         C/D/E
3         F

在 MS sql 中有一个简单的查询可以做到这一点吗?

【问题讨论】:

标签: sql-server database tsql pivot


【解决方案1】:

测试数据

DECLARE @TABLE TABLE(ID INT,zone CHAR(1))
INSERT INTO @TABLE VALUES
(1,'A'),(1,'B'),(2,'C'),
(2,'D'),(2,'E'),(3,'F')

查询

SELECT  t.ID
       ,STUFF((SELECT '/'+ zone
               FROM @TABLE
               WHERE ID = t.ID
               FOR XML PATH(''),TYPE).
               value('.','NVARCHAR(MAX)'),1,1,'') AS Zones

FROM @TABLE t
GROUP BY t.ID

结果集

╔════╦═══════╗
║ ID ║ Zones ║
╠════╬═══════╣
║  1 ║ A/B   ║
║  2 ║ C/D/E ║
║  3 ║ F     ║
╚════╩═══════╝

Working SQL FIDDLE

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多