网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

sqlserver 字符串多行合并为一行

时间:2024-10-13 05:17:33

1、--创建测试表IF OBJECT_ID('test') IS NOT NUL雉搽妤粲L DROP TABLE testCREATE TABLE 颊俄岿髭dbo.test( id int IDENTITY(1,1) NOT NULL, name varchar(50) NULL, subject varchar(50) NULL, source decimal(18,2) NULL)GO

2、--插入测试数据INSERT INTO test (name,subject,source) SELECT '张三','语文',鲂番黟谊60 UNION ALL SELECT '张三','英语',90 UNION ALL SELECT '李四','语文',70 UNION ALL SELECT '李四','数学',80 UNION ALL SELECT '王五','数学',75 UNION ALL SELECT '王五','英语',80GOSELECT * FROM test

3、--方法1:通过 select 累加DECLARE @sql_col VARCHAR(8000)SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME(subject) FROM test GROUP BY subjectSELECT @sql_col

4、--方法2:通过 FOR xml path('') 合并字符串记录SELECT STUFF( (SELECT '#' + subject FROM test WHERE name = '王五' FOR xml path('') ),1,1,'' )

5、--方法3:分组合并字符串记录SELECT name, Subject = ( STUFF( (SELECT '#' + subject FROM test WHERE name = A.name FOR xml path('') ),1,1,'' ) )FROM test AGROUP by name

© 2025 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com