SQL行转列

简介: 目的:将相同条件的多行值合并到同一列, 1.创建测试表: CREATE TABLE [dbo].[TB_01]( [SN] [nvarchar](50) NULL, [STEP_NAME] [nvarchar](50) NULL, [SDATE] [datetime] NULL ) ON [PRIMARY] 2.

目的:将相同条件的多行值合并到同一列,

1.创建测试表:

CREATE TABLE [dbo].[TB_01](
    [SN] [nvarchar](50) NULL,
    [STEP_NAME] [nvarchar](50) NULL,
    [SDATE] [datetime] NULL
) ON [PRIMARY]


2.插入测试数据:

INSERT INTO TB_01 VALUES('V000001','FQC','2015-01-01 10:20')
INSERT INTO TB_01 VALUES('V000001','OQC','2015-01-02 07:35')
INSERT INTO TB_01 VALUES('V000002','FQC','2015-05-23 15:26')

 

3.原始数据结果:

 

期望的数据格式:

V000001    FQC(2015-01-01 10:20:00),OQC(2015-01-02 07:35:00)
V000002    FQC(2015-05-23 15:26:00)

 

4.利用FOR XML PATH实现:

SELECT  SN,LEFT(Steps,LEN(Steps)-1) AS AAAAA  FROM (
        SELECT SN,
        (SELECT Step_Name+'('+CONVERT(VARCHAR(100),SDATE,120)+')'+','  FROM TB_01
          WHERE SN=A.SN 
          FOR XML PATH('')) AS Steps
        FROM TB_01 A 
        GROUP BY SN
        ) B    

最终结果:

 

相关文章
|
3天前
|
SQL 关系型数据库 MySQL
SQL脚本行转列
【5月更文挑战第1天】
9 0
|
4月前
|
SQL 流计算
Flink SQL提供了行转列的功能,可以通过使用`UNPIVOT`操作来实现
【1月更文挑战第1天】Flink SQL提供了行转列的功能,可以通过使用`UNPIVOT`操作来实现
141 0
|
9月前
|
SQL 前端开发 关系型数据库
pg库实现sql行转列
这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况。列转行问题同样也很常见。
231 0
pg库实现sql行转列
|
SQL
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
836 0
SQL中的行转列和列转行
|
SQL Oracle 关系型数据库
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
本篇文章讲解的主要内容是:***目前Oracle支持的行列互换有两种方式:case when、pivot\unpivot,我将通过几个案例来给大家详解如何通过这两种方式实现“行转列”,“列转行”的需求,并通过执行计划看case when、pivot\unpivot二者的底层逻辑关系以及效率上的影响。***
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
|
SQL
行转列【死磕sql】
行转列【死磕sql】
137 0
行转列【死磕sql】
|
SQL
重温SQL行转列,性能又双叒提升了
重温SQL行转列,性能又双叒提升了
309 0
重温SQL行转列,性能又双叒提升了
|
SQL
SQL中行转列、列转行
SQL中行转列、列转行
217 0
SQL中行转列、列转行
【每日SQL打卡】​​​​​​​​​​​​​​​DAY 19丨行转列【难度中等】​
【每日SQL打卡】​​​​​​​​​​​​​​​DAY 19丨行转列【难度中等】​
|
SQL Oracle Java
建议收藏丨sql行转列的一千种写法!!
建议收藏丨sql行转列的一千种写法!!
建议收藏丨sql行转列的一千种写法!!