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用法

总结

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

相关文章

  • 常见的SQL优化面试专题大全

    常见的SQL优化面试专题大全

    面试中如何被问到SQL优化,看这篇就对了,下面这篇文章主要给大家介绍了关于SQL优化面试的相关资料,文中将答案介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 如何查看Navicat加密的数据库密码

    如何查看Navicat加密的数据库密码

    本机装的MySQL数据库密码忘记了,打开了Navicat连接过数据库,不过密码是加密的,怎么办呢?今天小编给大家分享如何查看Navicat加密的数据库密码,感兴趣的朋友一起看看吧
    2023-04-04
  • gaussDB数据库常用操作命令详解

    gaussDB数据库常用操作命令详解

    这篇文章主要介绍了gaussDB数据库常用操作命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 数据库 SQL千万级数据规模处理概要

    数据库 SQL千万级数据规模处理概要

    我在前年遇到过过亿条的数据。以至于一个处理过程要几个小时的。后面慢慢优化,查找一些经验文章。才学到了一些基本方法。综合叙之,与君探讨之。
    2009-07-07
  • dapper使用Insert或update时部分字段不映射到数据库

    dapper使用Insert或update时部分字段不映射到数据库

    我们在使用dapper的insert或update方法时可能会遇见一些实体中存在的字段但是,数据库中不存在的字段,这样在使用insert时就是抛出异常提示字段不存在,这个时候该怎么解决呢,下面给大家分享示例实体代码,感兴趣的朋友一起看看吧
    2023-12-12
  • 当数据库变慢时的解决方法

    当数据库变慢时的解决方法

    当数据库变慢时,我们应如何入手,下面的解决方法。
    2009-04-04
  • 由拖库攻击谈口令字段的加密策略(数据库加密)

    由拖库攻击谈口令字段的加密策略(数据库加密)

    我不得不惨痛地写在前面的是,这是一个安全崩盘的时代。过去一年,已经证实的遭遇入侵、并导致关键数据被窃或者被泄露的公司,包括索尼、世嘉这样的大型游戏设备厂商;包括花旗银行这样的金融机构,也包括了RSA这样的安全厂商
    2012-01-01
  • SQL分组函数group by和聚合函数(COUNT、MAX、MIN、AVG、SUM)的几点说明

    SQL分组函数group by和聚合函数(COUNT、MAX、MIN、AVG、SUM)的几点说明

    这篇文章主要介绍了SQL分组函数group by和聚合函数(COUNT、MAX、MIN、AVG、SUM)的几点说明,需要的朋友可以参考下
    2020-11-11
  • hive数据仓库新增字段方法

    hive数据仓库新增字段方法

    这篇文章主要为大家介绍了hive中新增字段的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • SQL查询的底层运行原理深入分析

    SQL查询的底层运行原理深入分析

    这篇文章主要给大家介绍了关于SQL查询的底层运行原理,文中通过实例代码结束的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08

最新评论