博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
privot函数使用
阅读量:6839 次
发布时间:2019-06-26

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

语法:

table_source

PIVOT(

聚合函数(value_column)

FOR pivot_column

IN(<column_list>)

)

 

将列转化为行

 

写个小示例 :比如按人统计该月份的考勤小时数

 

USE [test]GO/****** Object:  Table [dbo].[KaoQin]    Script Date: 07/06/2017 15:44:34 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[KaoQin](    [autoId] [int] IDENTITY(1,1) NOT NULL,    [userName] [nvarchar](50) NULL,    [dt] [datetime] NULL,    [hour] [int] NULL, CONSTRAINT [PK_KaoQin] PRIMARY KEY CLUSTERED (    [autoId] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY]GO

 

 

 

然后新增一点儿测试数据

 

declare @count int set @count=5declare @i int set @i=0declare @riqi datetimeset @riqi=GETDATE()while  @i<@countbegin        set @riqi=dateadd(day,1,@riqi)        insert into dbo.KaoQin values('王二',@riqi, cast(RAND()*10 as int))    set @i=@i+1end

 最后数据是这样的

传统的办法当然也可以解决,如下

select SUM( case  when userName='张三' then hour else 0 end )as '张三',SUM( case when userName='李四' then hour else 0 end ) as '李四',SUM( case when userName='王二' then hour else 0 end ) as '王二' from dbo.KaoQin

哪些下面重点来了 我们用pivot

 

转载于:https://www.cnblogs.com/yuanyanyan/p/6586899.html

你可能感兴趣的文章
NSGA-II入门C1
查看>>
结对第2次作业——WordCount进阶需求
查看>>
两个经典递归问题:菲波那契数列 + 汉诺塔
查看>>
bzoj3171: [Tjoi2013]循环格(费用流)
查看>>
php中处理xml文件的类 simpleXML
查看>>
attr与prop
查看>>
结构体内字节手动对齐(#pragam pack)
查看>>
TagCloudView云标签的灵活运用
查看>>
Wikioi 1020 孪生蜘蛛 Label:Floyd最短路
查看>>
链路聚合
查看>>
Mybatis映射文件(3)
查看>>
SpringtMVC中配置 <mvc:annotation-driven/> 与 <mvc:default-servlet-handler/> 的作用
查看>>
springboot配置文件priperties大全
查看>>
UOJ46. 【清华集训2014】玄学
查看>>
调整屏幕亮度,调整字体大小
查看>>
js解决EasyUI页面渲染速度慢问题(Mask遮罩)
查看>>
swift--添加新手引导页
查看>>
jq 切换功能toggle
查看>>
Oracle-04:DDL语言数据表的操作
查看>>
redis中的order set 有序集合
查看>>