SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行
ylbtech-SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行 |
A,PIVOT 语法返回顶部 |
PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。有关 PIVOT 语法的完整说明,请参阅 FROM (Transact-SQL)。
以下是带批注的 PIVOT 语法。
SELECT <非透视的列>,[第一个透视的列] AS <列名称>,[第二个透视的列] AS <列名称>,...[最后一个透视的列] AS <列名称>, FROM(<生成数据的 SELECT 查询>)AS <源查询的别名> PIVOT (<聚合函数>(<要聚合的列>) FOR [<包含要成为列标题的值的列>]IN ( [第一个透视的列], [第二个透视的列],... [最后一个透视的列]) ) AS <透视表的别名> <可选的 ORDER BY 子句>;
B,PIVOT 示例1返回顶部 |
--A1、传统 case 方法 select username as '姓名' ,max(case [subject] when '语文' then score else 0 end) as '语文' ,max(case [subject] when '数学' then score else 0 end) as '数学' ,max(case [subject] when '英语' then score else 0 end) as '英语' ,max(case [subject] when '生物' then score else 0 end) as '生物' from StudentScores group by username;
-- A2:PIVOT 方法 select username as '姓名',[语文],[数学],[英语],[生物] from StudentScores a PIVOT ( max(a.score) for a.subject in([语文],[数学],[英语],[生物]) )b;
C,UNPIVOT 示例1返回顶部 |
-- P1:查询项目每个供应商的供给数量? -- A1:UNPIVOT 方法 select b.projectName,b.supplier,b.supllyNumber from ( select projectName,overseaSupply,nativeSupply,southSupply,northSupply from ProjectDetail) a UNPIVOT ( supllyNumber for supplier in(overseaSupply,nativeSupply,southSupply,northSupply) )b;
D,PIVOT 示例2返回顶部 |
E,返回顶部 |
F,返回顶部 |
G,相关资源返回顶部 |
H,返回顶部 |
SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行相关推荐
- SQL Server里PIVOT运算符的”红颜祸水“
概述 SQL Server里PIVOT运算符背后的基本思想是在T-SQL查询期间,你可以旋转行为列.运算符本身是SQL Server 2005后引入的,主要用在基于建立在实体属性值模型(Entity ...
- 利用T-SQL动态定义重复SQL Server数据库表行
介绍 (Introduction) Lever T-SQL to handle duplicate rows in SQL Server database tables article highlig ...
- SQL Server创建复合索引时,复合索引列顺序对查询的性能影响
SQL Server创建复合索引时,复合索引列顺序对查询的性能影响 原文:SQL Server创建复合索引时,复合索引列顺序对查询的性能影响 说说复合索引 写索引的博客太多了,一直不想动手写,有一下两 ...
- SQL Server删除重复行的6个方法
SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect ta ...
- SQL Server 中 ROWLOCK 行级锁
一.ROWLOCK的使用 1.ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOC ...
- sql server之pivot函数
PIVOT用于将列值旋转为列名(即行转列) 今天整理以前的笔记时,发现以前在PPD实习的时候遇到一个场景,感觉很实用所以想记录一下,说不定以后能用到,话不多说,直接上案例: --表table1 问题编 ...
- SQL Server 堆表行存储大小(Record Size)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...
- SQL SERVER 表最小行的一个纠结问题
昨天一个同事突然问我,说他在SQL 2000数据库创建如下表的时候,突然碰到了下面一条警告信息.SQL脚本和警告信息如下: IF OBJECT_ID(N'Log') IS NULL BEGIN CR ...
- SQL SERVER将多行数据合并成一行(转载)
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes ep_name A ...
最新文章
- Transformer也能生成图像
- 一个仿微信朋友圈的图片查看框架 - PhotoViewer
- 「追根溯源」Ruby数组的uniq方法
- Mybatis源码: Builder Mapper Executor
- 爱思助手短信备份到安卓_爱思助手肿么将短信导入iphone
- mysql可以存储整数数值的是_MySQL知识树 数值类型 整数
- 这些将在新一年改变你的风控内容
- PostgreSQL如何拼接字符串
- 俄亥俄大学计算机科学专业,俄亥俄州立大学计算机科学专业研究生申请条件
- 【科普】波特率和比特速率的理解
- framemaker中遍历及判断其属性是否存在
- easypoi 语法_【英语语法】一般过去时(附视频讲解)
- 基于GAN的语音转换技术及语音合成TTS
- 微信 SHA1 签名_微信公众号自动回复功能开发
- 时间序列信号处理(四)——傅里叶变换和短时傅里叶变换python实现
- 若依ruoyi框架实现单点登录或者接入统一认证
- Kubernetes集群搭建以及基本使用【具详细】;
- java 事件链_供应链攻击事件——针对Github中Java项目的定向攻击
- Active Directory(活动目录) 域服务
- 应急资源大数据三维电子沙盘展示系统