博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sql Server 行转列
阅读量:6636 次
发布时间:2019-06-25

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

SQL Server 行转列 聚合函数的选择:

--摘自网络

PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现

PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P

完整语法:

table_source

PIVOT(

聚合函数(value_column)

FOR pivot_column

IN(<column_list>)

)

 

UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

完整语法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN(<column_list>)

)

 

for instance

[sql]
DECLARE @s NVARCHAR(4000) 
SELECT @s = ISNULL(@s + ',', '') +  QUOTENAME(QuestionID) 
FROM  (select distinct QuestionID from #ABC) as A ---列名不要重复 
 
Declare @sql NVARCHAR(4000) 
SET @sql=' 
select r.* from 
(select UserID,QuestionID,AnswerID from #ABC) as t 
pivot 
max(t.AnswerID) 
for t.QuestionID in ('+@s+') 
) as r' 
  
EXEC( @sql)
 
 

转载于:https://www.cnblogs.com/tutuyforever/p/3965979.html

你可能感兴趣的文章
Windows Azure 微软公有云体验(三) IIS中文编码解决方案
查看>>
神剧制作《黑镜》第四季基本剧情,良心制作
查看>>
poj2182 Lost Cows (线段树)
查看>>
Hadoop从2.2.0到2.7
查看>>
利用maven将jar包添加到本地仓库中
查看>>
Python基本数据类型(字典)
查看>>
The next day to learn English
查看>>
VS2017编译Qt x64
查看>>
Android中检测网络连接状况的方法
查看>>
可扩展标记语言XML
查看>>
github使用及代码同步
查看>>
adblock广告过滤
查看>>
Css gray 无法覆盖IE10
查看>>
Linux 脚本编写基础
查看>>
.NET设计模式(15):结构型模式专题总结(转)
查看>>
mysql分表的3种方法(转)
查看>>
WCF RIA Services使用详解(转载)
查看>>
TabActivity与Activity之间的动画跳转(主要Tabhost中跳转出来的动画效果解决)
查看>>
MySql 密码过期
查看>>
高斯混合模型 GMM
查看>>