列转行pivot函数在SQL Sever里面和Oracle里面的用法区别
2024-10-21 13:22:27
首先pivot是一个列转行的函数,反向用是unpivot(行转列)。
在SQL sever中可以这么写
SELECT * FROM [TABLE] /*数据源*/
AS A
PIVOT
(
MAX/*聚合函数*/(COL1/*行转列后 列的值*/) FOR
A.COL2/*需要行转列的列*/
IN ([VALUE1],[VALUE2],[VALUE3].../*列的值*/)
) AS B
在Oracle中可以这么写
select *
from tab
pivot(max /*聚合函数*/
(col1 /*行转列后 列的值*/)
for a.col2 /*需要行转列的列*/
in('value1' as v1, 'value2' as v2, 'value3' as v3.. . /*列的值*/)
--==========================================================
先放一个sql sever的实例
以下是原表:
sql语句做处理:
select t.[] as o, t.[] p, t.[] as q
from tab_test1 as p
PIVOT(max(p.b)
FOR p.a IN([], [], [])) AS T
结果如下:
--===========================================
再来一个Oracle的实例,以下是原表:
处理sql语句:
select * from TAB_TEST pivot(min(B) for A in('' t1, '' t2, '' t3))
结果如下:
最新文章
- JS实现带复选框的下拉菜单
- Windows下nodejs 模块配置 全局模式与本地模式的区别
- SPOJ GSS1 Can you answer these queries I
- 每一个成功的程序员的身后都有一个--------Parse
- 1.10 编程之美-双线程下载[double threads to download]
- Android——ImageSwitcher 图片切换
- Linux内核分析作业二—操作系统是如何工作的
- EINTR错误
- Things App Engine Doesn't Do...Yet
- ArcGIS 读写lyr层文件
- 关于实现判断用户是在PC端和还是移动端访问。
- a标签拨打电话、发短信、发邮件
- JAVA classpath, 纠正我一直以来错误的认知
- 一个简单的flask程序
- iOS基础 - UIDynamic
- 手动加支付宝遇到的错误--iOS
- 【ASP.NET MVC 学习笔记】- 03 Razor语法
- JavaScript实现ZLOGO: 用语法树实现多层循环
- dojo表格的一些属性
- pdf.js 使用实例
热门文章
- PHP后门之冷门回调函数(过waf)
- [Luogu3868] [TJOI2009]猜数字
- SpringBoot系列:Spring Boot集成Spring Cache,使用EhCache
- 分布式FastDFS集群部署
- vue css 深度选择器
- Vulnhub靶场渗透练习(三) bulldog
- 如何定制 Spring Boot 的 Banner?
- ESP8266开发之旅 应用篇② OLED显示天气屏
- C# 闭包对像
- Excel在线预览(通过poi转html,含里面的图片)