最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

SQLServer中的行列倒置技巧

来源:懂视网 责编:小采 时间:2020-11-09 16:04:02
文档

SQLServer中的行列倒置技巧

SQLServer中的行列倒置技巧:行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结: 第一种:sql server 2000中使用case进行行列倒置 create table RowCellConvertTest ( g
推荐度:
导读SQLServer中的行列倒置技巧:行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结: 第一种:sql server 2000中使用case进行行列倒置 create table RowCellConvertTest ( g

行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结: 第一种:sql server 2000中使用case进行行列倒置 create table RowCellConvertTest ( grade varchar(50), sex

行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结:

第一种:sql server 2000中使用case进行行列倒置

create table RowCellConvertTest
(
grade varchar(50),
sex varchar(50),
studentCount int
)
go
insert into RowCellConvertTest
select '一年级','男',100 union all
select '一年级','女',200 union all
select '二年级','男',100 union all
select '二年级','女',100 union all
select '三年级','男',200 union all
select '三年级','女',200
go


select * from RowCellConvertTest
go

--利用SQL Server 2000的case将行转换成列
declare @sql varchar(max)
set @sql = 'select grade'
select @sql=@sql+ ',sum(case when sex = '''+sex+''' then studentCount else '''' end) as '''+sex+'''' from RowCellConvertTest group by sex
--select @sql = substring(@sql,2,len(@sql))
--print @sql
select @sql = @sql +'from RowCellConvertTest group by grade'
exec(@sql)
go

drop table RowCellConvertTest
go

效果:

第二种:

--利用SQL Server 2005新特性pivot将行转换成列
select grade,男,女
from
(
select studentCount, sex, grade from RowCellConvertTest
) p
PIVOT
(
sum (studentCount)
FOR sex IN
(男,女)
) AS pvt
ORDER BY pvt.grade;

附加:将列转换成行

--将列转换成行
create table CellRowConvertTest
(
grade varchar(50),
男 varchar(50),
女 varchar(50)
)
go
insert into CellRowConvertTest
select '一年级',100,200 union all
select '二年级',100,100 union all
select '三年级',200,200
go

select * from CellRowConvertTest
go

select grade,sex,studentCount
from
(
select grade,男,女 from CellRowConvertTest
) as p
unpivot
(
studentCount for sex in (男,女)
) as unpvt;
go

drop table CellRowConvertTest
go

效果:

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

SQLServer中的行列倒置技巧

SQLServer中的行列倒置技巧:行列倒置在sql server中是一种很常见的技巧,在做应用系统的时候,经常需要做一些统计功能避免不了使用行列倒置这个技巧,我小小的做了一下总结: 第一种:sql server 2000中使用case进行行列倒置 create table RowCellConvertTest ( g
推荐度:
标签: 中的 技巧 sql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top