SQL知识点之列转行Unpivot函数

 更新时间:2019年09月05日 10:55:34   作者:DataFrog  
这篇文章主要给大家介绍了关于SQL知识点之列转行Unpivot函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

这是总结SQL知识点的第二篇文章,一次只总结一个知识点,尽量说明白。上次我们谈到行转列,用的是Pivot函数,这次我们来谈谈Unpivot函数。(这里是用的数据库是SQLSERVER,与其他数据库是类似的,大家放心看就好)

先看一个小问题CustomerCustomer

在这张图中,表示的是顾客用不同手机号给Phone1、Phone2、Phone3拨打电话的情况,但是机灵的你,想变个花样来看看,比如下面这样的。

UnpivotUnpivot

大家想想看如何实现呢?想下,2分钟后再看哟

先创建数据

 CREATE TABLE dbo.CustomerPhones
(
 CustomerID INT PRIMARY KEY, -- FK
 Phone1 VARCHAR(32),
 Phone2 VARCHAR(32),
 Phone3 VARCHAR(32)
);
INSERT dbo.CustomerPhones
 (CustomerID, Phone1, Phone2, Phone3)
VALUES
 (1,'705-491-1111', '705-491-1110', NULL),
 (2,'613-492-2222', NULL, NULL),
 (3,'416-493-3333', '416-493-3330', '416-493-3339');

 select * from dbo.CustomerPhones

查看数据如下:

DataDataUpivot 实现行转列

 select * from dbo.CustomerPhones -----数据源
 unpivot 
( 
  Phone FOR Phones IN (Phone1, Phone2, Phone3)
   ##Phone1、Phone2、Phone3这些列的结果转为行上的结果,成为一列,
  ##并且有了新的列名为Phone
) up

结果如下:

ResultResult

参考文献:

1.Use SQL Server's UNPIVOT operator to help normalize output

2.SQL之行转列Pivot用法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • 取随机记录的语句

    取随机记录的语句

    取随机记录的语句...
    2007-03-03
  • 详解Flink同步Kafka数据到ClickHouse分布式表

    详解Flink同步Kafka数据到ClickHouse分布式表

    这篇文章主要为大家介绍了Flink同步Kafka数据到ClickHouse分布式表实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 高性能分析数据库StarRocks的安装与使用详解

    高性能分析数据库StarRocks的安装与使用详解

    在大数据时代,选择一个高性能的分析数据库对业务的成功至关重要,StarRocks作为一款次世代MPP数据库,以其卓越的实时分析和多维分析能力而闻名,下面小编就来和大家聊聊它的具体安装与使用吧
    2025-03-03
  • 复杂SQL实现分组分情况分页查询代码实例

    复杂SQL实现分组分情况分页查询代码实例

    最近学习了一下SQL的分页查询,总结了复杂SQL分组分页查询的方法,这篇文章主要给大家介绍了关于复杂SQL实现分组分情况分页查询的相关资料,需要的朋友可以参考下
    2023-12-12
  • 交叉表查询sql语句

    交叉表查询sql语句

    交叉表查询sql语句...
    2007-06-06
  • 关系型数据库的设计规则详解

    关系型数据库的设计规则详解

    大家好,本篇文章主要讲的是关系型数据库的设计规则详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • SQL行转列、列转行的简单实现

    SQL行转列、列转行的简单实现

    这篇文章主要给大家介绍了关于SQL行转列、列转行的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • sql注入教程之类型以及提交注入

    sql注入教程之类型以及提交注入

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,这篇文章主要给大家介绍了关于sql注入教程之类型以及提交注入的相关资料,需要的朋友可以参考下
    2021-07-07
  • 数据库中union 与union all 的区别

    数据库中union 与union all 的区别

    当我们要对两个或两个以上的表进行操作时。我们经常会用到union 与union all
    2009-11-11
  • hive函数简介

    hive函数简介

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行,十分适合数据仓库的统计分析
    2017-09-09

最新评论