国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江津市| 莒南县| 新晃| 正阳县| 富裕县| 饶河县| 维西| 开江县| 瑞金市| 泰州市| 盐城市| 大方县| 辽阳县| 探索| 大石桥市| 福贡县| 普陀区| 延边| 北流市| 达州市| 江口县| 佛山市| 五大连池市| 周口市| 玉门市| 新密市| 东乡族自治县| 塔城市| 东乌珠穆沁旗| 建平县| 新巴尔虎右旗| 宝坻区| 阳曲县| 右玉县| 玉树县| 肥城市| 永登县| 绥滨县| 林口县| 咸丰县| 寻甸|