sqlserver字符串多行合并为一行
生活随笔
收集整理的這篇文章主要介紹了
sqlserver字符串多行合并为一行
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 --創(chuàng)建測試表
2 CREATE TABLE [dbo].[TestRows2Columns](
3 [Id] [int] IDENTITY(1,1) NOT NULL,
4 [UserName] [nvarchar](50) NULL,
5 [Subject] [nvarchar](50) NULL,
6 [Source] [numeric](18,0) NULL
7 )
8 GO
9
10 --插入測試數(shù)據(jù)
11 INSERT INTO [TestRows2Columns] ([UserName],[Subject],[Source])
12 SELECT N'張三',N'語文',60 UNION ALL
13 SELECT N'李四',N'數(shù)學(xué)',70 UNION ALL
14 SELECT N'王五',N'英語',80 UNION ALL
15 SELECT N'王五',N'數(shù)學(xué)',75 UNION ALL
16 SELECT N'王五',N'語文',57 UNION ALL
17 SELECT N'李四',N'語文',80 UNION ALL
18 SELECT N'張三',N'英語',100
19 GO
20
21 SELECT * FROM [TestRows2Columns]
22
23
24
25
26 --1 通過 select 累加
27 DECLARE @sql_col VARCHAR(8000)
28 SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME([Subject]) FROM TestRows2Columns
29 GROUP BY [Subject]
30
31 SELECT @sql_col
32
33
34
35
36 --2 通過 FOR xml path('') 合并字符串記錄
37 SELECT
38 STUFF(
39 (SELECT '#' + Subject
40 FROM TestRows2Columns
41 WHERE UserName = '王五'
42 FOR xml path('')
43 ),1,1,''
44 )
45
46
47 --3 分組合并字符串記錄
48 SELECT
49 UserName,
50 Subject = (
51 STUFF(
52 (SELECT '#' + Subject
53 FROM TestRows2Columns
54 WHERE UserName = A.UserName
55 FOR xml path('')
56 ),1,1,''
57 )
58 )
59 FROM TestRows2Columns A
60 GROUP by UserName
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiangzhong/p/8150083.html
總結(jié)
以上是生活随笔為你收集整理的sqlserver字符串多行合并为一行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cs231n笔记:线性分类器
- 下一篇: 15.django之Django-Res