PIVOT函数,行转列

PIVOT函数的格式如下

PIVOT(([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],.......[行转列后的列名N]))

就是我们使用的SUM,COUNT,AVG等Sql聚合函数,也就是行转列后计算列的聚合方式。

[聚合列值]要进行聚合的列名

[行转列前的列名]这个就是需要将行转换为列的列名。

[行转列后的列名]这里需要声明将行的值转换为列后的列名,因为转换后的列名其实就是转换前行的值,所以上面格式中的[行转列后的列名1],[行转列后的列名2],[行转列后的列名3],......[行转列后的列名N]其实就是[行转列前的列名]每一行的值。

select * from (select 合同号,库房,项数 from Book) as a

pivot(sum(项数字段) FOR [库房字段] in([晋和],[宇培],[富宝])) as b

UNPIVOT函数,列转行

UNPIVOT函数的格式如下:

UNPIVOT([转换为行的列值在转换后对应的列名] for [转换为行的列名在转换后对应的列名] in ([转换为行的列1],[转换为行的列2],[转换为行的列3],...[转换为行的列N]))

[转换为行的列值在转换后对应的列名]这个是进行列转行的列其数据值在转换为行后的列名称

[转换为行的列名在转换后对应的列名]这个是进行列转行的列其列名在转换为行后的列名称

[转换为行的列]这个是声明哪些列要进行列转行

with PIVOT_Table as

(

select *

from ShoppingCart as C

PIVOT(count(TotalPrice) FOR [Week] IN([1],[2],[3],[4],[5],[6],[7])) AS T

)

select * from PIVOT_Table UNPIVOT([RowCount] for [Week] in ([1],[2],[3],[4],[5],[6],[7])) as T

pivot sqlserver 条件_SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行相关推荐

  1. pivot sqlserver 条件_行转列之SQLSERVERPIVOT与用法详解

    在数据库操作中,有些时候我们遇到需要实现"行转列"的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIM ...

  2. 快速排序 python菜鸟教程-NumPy 排序、条件刷选函数

    NumPy 排序.条件刷选函数 NumPy 提供了多种排序的方法. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种排序算法 ...

  3. SQLServer常用的字符串函数梳理

    今天给大家分享一下SQLServer常用的字符串函数知识笔记,希望对大家能有所帮助! 1.ASCII(字符串表达式) 作用:返回表达式最左侧字符串的ASCII代码值. 示例:SELECT ASCII( ...

  4. SQLServer常用的配置函数笔记

    今天给大家分享一下SQLServer常用的配置函数知识,希望对初学者能有所帮助! 1.@@DATEFIRST @@Datefirst返回值tinyint 说明:datefirst指一周中的第一天,英语 ...

  5. sqlserver oracle对比,sqlserver和oracle常用函数对比

    sqlserver和oracle常用函数对比 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S: ...

  6. excel多列多行堆叠成多列一行_「Excel技巧」如何利用indirect函数快速将一列转为多行多列排版...

    HI,大家好哈. 前几天我们有聊了如何将多行多列转一列的话题,今天就顺势来聊聊如何将一列转多行多列. 因为,一份表格,如果里面只有一列,不过有一百多行,甚至几百行, 这样子排版, 一方面,不够一目了然 ...

  7. 不要在循环,条件或嵌套函数中调用 Hook

    只在最顶层使用 Hook 不要在循环,条件或嵌套函数中调用 Hook, 确保总是在你的 React 函数的最顶层调用他们.遵守这条规则,你就能确保 Hook 在每一次渲染中都按照同样的顺序被调用.这让 ...

  8. sorted()函数快速实现字典输出

    sorted()函数快速实现字典输出 s=input('x,y,z=') x,y,z=s.split(',')#序列解包 x,y,z=sorted([x,y,z])#序列解包 print(x,y,z) ...

  9. mysql函数做条件_MySQL语句优化(三):避免条件字段做函数操作

    今天跟各位分享一个生产环境慢查询的例子,是一个比较典型的"条件字段使用了函数导致无法走索引"的例子. 一.定位慢查询 首先发现慢查询告警,通过运维平台看到慢查询主要是下面这条:SE ...

最新文章

  1. 关于Jfinal的分享代码托管GitHub
  2. Property ‘configuration‘ and ‘configLocation‘ can not specified with together
  3. java锁方法和锁代码块_java的同步方法和同步代码块,对象锁,类锁区别
  4. JAVA知识基础(一):数据类型
  5. 2 数据源配置_Spring, MyBatis 多数据源的配置和管理
  6. php类知识 self $this都只能在当前类中使用
  7. Neumorphism新拟物化控件设计灵感
  8. 【C/C++】成员变量的初始化顺序
  9. HTML—讲解分割线标签、文字居中、背景图片充满全图
  10. MyBatis中拦截器(Interceptor)实现原理分析
  11. 使用ffmpeg转换webm格式到MP4格式
  12. 局域网内两台电脑ping不通
  13. 百度地图 和百度导航及语音集成冲突解决办法
  14. java对网络图片进行签名
  15. 猫、路由器、带宽、IP地址、子网掩码、网关以及公网与私网简介
  16. 机器学习——Matplotlib入门教程
  17. 红尘阡陌,那抹温暖的烟火
  18. 模电笔记2 二极管 稳压二极管
  19. eclipse安装及使用
  20. Mock.js 使用

热门文章

  1. Linux vim 替换命令
  2. laravel Eloquent的模式事件
  3. 人类细胞研究:ProSci LAG-3重组蛋白方案
  4. 整数运算和浮点数运算中除数为0的区别
  5. Redis Zset有序集合
  6. 韩顺平QQ多用户聊天系统-离线消息发送
  7. 初学者如何用日语自我介绍
  8. 字体加密破解技术分享-01
  9. 上手一个月 华为nova2s这5点值得称赞
  10. .NET Core/.NET5/.NET6 开源项目汇总:(权限)管理系统