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

  • 快速标注地质点
  • 方舟怎么孵化恐龙蛋
  • 虾皮新手批量发布产品快速铺货详细教程
  • 如何更换图片背景?
  • 玉米须(俗称“龙须”)的功效与作用
  • 热门搜索
    biangbiang面怎么打 手脚冰凉出汗是怎么回事 疯狂旅游团 旅游观光 普通阴炎可以自愈吗 北戴河旅游景点有哪些 哺乳期可以吃巧克力吗 swf文件怎么打开 什么可以祛斑 忧郁症怎么治疗