博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
行转列:SQL SERVER PIVOT与用法解释
阅读量:5501 次
发布时间:2019-06-16

本文共 805 字,大约阅读时间需要 2 分钟。

1创建一张临时表

CREATE TABLE #week_income(

week NVARCHAR(20) ,
income INT
)

2向临时表中插入数据

INSERT INTO #week_income

SELECT '星期一',1000
UNION ALL
SELECT '星期二',2000
UNION ALL
SELECT '星期三',3000
UNION ALL
SELECT '星期四',4000
UNION ALL
SELECT '星期五',5000
UNION ALL
SELECT '星期六',6000
UNION ALL
SELECT '星期日',7000

3一般的查询是这样的 SELECT * FROM #week_income

但是这样显示的效果是不好的,如果换个sql查询,例如 使用了PIVOT语法,对行列进行转换

SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]

FROM #week_income
PIVOT (
SUM(income)FOR week IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])
)a

得到的结果是这样的

4 然后再把转换后的表格再次的转为原来的形式 ,先准备一个临时表 #cc 

SELECT * INTO #cc

FROM #week_income
PIVOT
(
SUM(income)FOR week IN (星期一,星期二,星期三,星期四)
)a

临时表的内容格式如下 

 

然后通过unpivot sql语法转换 

SELECT * FROM #cc

UNPIVOT (income FOR week IN (星期一,星期二,星期三,星期四))b

 

转载于:https://www.cnblogs.com/yachao1120/p/8519548.html

你可能感兴趣的文章
异步编程模式(三):等待异步调用的完成
查看>>
win7硬盘安装Ubuntu 14.04、Win7和Ubuntu双系统时卸载Ubuntu
查看>>
JS跨域ajax访问
查看>>
解决 CentOS网卡eth0启用不了问题
查看>>
VMWARE虚拟机CentOS6.4系统使用主机无线网卡上网的三种方法介绍
查看>>
dispatch 之 常见函数小结
查看>>
TYVJ2002 扑克牌
查看>>
【转载】关于大数据库的一些不错的GitHub项目
查看>>
【Todo】淘宝十年产品事-读书笔记
查看>>
【转载】GitHub中国区前100名到底是什么样的人
查看>>
mongolass 中报 ($.content: "say Hi ~") ✖ (type: String)
查看>>
A. Counting Kangaroos is Fun(贪心)
查看>>
2018十大国产佳片
查看>>
Chrome谷歌浏览器web前端开发好用插件(自己用)备忘
查看>>
P1113 杂务
查看>>
day1作业一:编写登陆接口
查看>>
随笔分类目录
查看>>
关于web标准
查看>>
RabbitMQ消息队列生产者和消费者
查看>>
从缓存行出发理解volatile变量、伪共享False sharing、disruptor
查看>>