zoukankan      html  css  js  c++  java
  • sqlserver字符串多行合并为一行

     1 --创建测试表
     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 --插入测试数据
    11 INSERT INTO [TestRows2Columns] ([UserName],[Subject],[Source]) 
    12     SELECT N'张三',N'语文',60  UNION ALL
    13     SELECT N'李四',N'数学',70  UNION ALL
    14     SELECT N'王五',N'英语',80  UNION ALL
    15     SELECT N'王五',N'数学',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
  • 相关阅读:
    [mac]macOS Big Sur大苏尔动态壁纸下载
    JAVA各种OOM代码样例及解决方法
    详解Flask上下文
    Python代码规范检测
    深入掌握K8S Pod
    Java中包装类Test类测试出错的解决方法(JUnit5)
    细说selenium的等待条件
    利用tox打造自动自动化测试框架
    JAVA实现BP神经网络算法
    Oracle游标简介与使用
  • 原文地址:https://www.cnblogs.com/xiangzhong/p/8150083.html
Copyright © 2011-2022 走看看