国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

Sql Server:多行合并成一行,并做分組統計的兩個方法

2024-08-31 00:56:30
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


--創建 test 表 ,插入數據

CREATE TABLE test(code varchar(50), [values] varchar(10),[count] int)
INSERT test SELECT '001', 'aa',1
UNION ALL SELECT '001', 'bb',2
UNION ALL SELECT '002', 'aaa',4
UNION ALL SELECT '002', 'bbb',5
UNION ALL SELECT '002', 'ccc',3;



--方法一
--將多行合并成一行,并做分組統計
SELECT code,
[values] =
stuff(b.[values].value('/R[1]', 'nvarchar(max)'),
,
,
''),[count]
FROM (SELECT code,sum([count]) as [count]
FROM test
GROUP BY code) a
CROSS apply (
SELECT [values] =(
SELECT N',' + [values] FROM test
WHERE code = a.code
FOR XML PATH(''), ROOT('R'), TYPE
)
) b;



--方法二

---SQL2005中的新解法 使用XML

SELECT code, data=STUFF((SELECT ','+[values] FROM test t WHERE code=t1.code FOR XML PATH('')), 1, 1, ''),sum([count]) as [count]
FROM test t1
GROUP BY code



--查詢結果

--001 aa,bb 3
--002 aaa,bbb,ccc 12



drop table test

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建宁县| 辽宁省| 保山市| 安吉县| 简阳市| 黑山县| 汪清县| 玉龙| 临漳县| 台安县| 旬阳县| 塔城市| 千阳县| 工布江达县| 冷水江市| 肇州县| 乐安县| 云南省| 沁阳市| 收藏| 梓潼县| 黄浦区| 徐汇区| 仙桃市| 阿巴嘎旗| 江陵县| 紫阳县| 甘德县| 鸡东县| 伊吾县| 鹤山市| 通海县| 贡嘎县| 家居| 安泽县| 渭南市| 湖北省| 昌吉市| 甘德县| 曲靖市| 安岳县|