sqlserver分组将多行合并成一行
来源:互联网 发布:mac 无法下载flash 编辑:程序博客网 时间:2024/06/08 06:03
--创建测试表CREATE TABLE [dbo].[TestRows2Columns]( [Id] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](50) NULL, [Subject] [nvarchar](50) NULL, [Source] [numeric](18,0) NULL)GO--插入测试数据INSERT INTO [TestRows2Columns] ([UserName],[Subject],[Source]) SELECT N'张三',N'语文',60 UNION ALL SELECT N'李四',N'数学',70 UNION ALL SELECT N'王五',N'英语',80 UNION ALL SELECT N'王五',N'数学',75 UNION ALL SELECT N'王五',N'语文',57 UNION ALL SELECT N'李四',N'语文',80 UNION ALL SELECT N'张三',N'英语',100GOSELECT * FROM [TestRows2Columns]
一、分组合并多行:
SELECT B.UserName,(SELECT RTRIM( A.[Subject]) +''+QUOTENAME(A.Source) +',' FROM TestRows2Columns A
WHERE A.UserName=B.UserName FOR XML PATH ('')) AS DDDD
FROM TestRows2Columns B
GROUP BY UserName
注释:RTRM函数是去除右边的空格;QUOTENAM函数给字段套个字符,默认套个[];
效果:
二、单列多行合成一行
select( SELECT RTRIM(UserName) + ',' FROM TestRows2Columns FOR XML PATH ('') ) as ddd
效果:
阅读全文
0 0
- sqlserver分组将多行合并成一行
- sqlserver 分组合并
- oracle 将多行合并成一行
- Sql Server:多行合并成一行,并做分组统计的两个方法
- oracle中分组后,把一组中一列的多行值合并成一行
- Sql Server:多行合并成一行,并做分组统计的两个方法
- SQLServer 将两行数据合并到一行
- Sqlserver 中如何通过group by 实现分组合并
- [Hive]用concat_w实现将多行记录合并成一行
- **[Hive]用concat_w实现将多行记录合并成一行**
- hive concat_w实现将多行记录合并成一行
- oracle 聚合函数 LISTAGG ,将多行结果合并成一行
- Oracle按时间分组统计的sql与oracle 多行合并一行
- shell脚本将多行合并为一行
- Spark读文本将多行合并为一行
- Oracle多行合并成一行
- SQL查询多行合并成一行
- Oracle 合并列成一行字符串
- [编程之美-16]层序打印二元树,每层打印一行
- 安装PHPMyAdmin
- linux下lsof使用
- jQuery遍历之each()
- 拷贝文件以及文件异常处理
- sqlserver分组将多行合并成一行
- Kotlin编程之二
- 主机无法访问虚拟机部署的应用
- ccf认证权限查询40分
- 快速排序
- 模拟实现atoi、itoa
- java复习笔记一
- stm32的体系架构
- FZU 2278 期望