亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

SQLServer中行列轉換Pivot UnPivot

2024-07-21 02:49:57
字體:
來源:轉載
供稿:網友
SQLServer中行列轉換Pivot UnPivot

PIVOT用于將列值旋轉為列名(即行轉列),在SQL Server2000可以用聚合函數配合CASE語句實現

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

完整語法:

table_source

PIVOT(

聚合函數(value_column)

FOR pivot_column

IN()

)

UNPIVOT用于將列明轉為列值(即列轉行),在SQL Server 2000可以用UNION來實現

完整語法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN()

)

注意:PIVOT、UNPIVOT是SQL Server 2005的語法,使用需修改數據庫兼容級別在數據庫屬性->選項->兼容級別改為 90

典型實例

一、行轉列

1、建立表格

ifobject_id('tb')isnotnulldroptabletb

go

createtabletb(姓名varchar(10),課程varchar(10),分數int)

insertintotbvalues('張三','語文',74)

insertintotbvalues('張三','數學',83)

insertintotbvalues('張三','物理',93)

insertintotbvalues('李四','語文',74)

insertintotbvalues('李四','數學',84)

insertintotbvalues('李四','物理',94)

go

select*fromtb

go

姓名課程分數

---------- ---------------------

張三語文74

張三數學83

張三物理93

李四語文74

李四數學84

李四物理94

2、使用SQLServer 2000靜態SQL

--c

select姓名,

max(case課程when'語文'then分數else0end)語文,

max(case課程when'數學'then分數else0end)數學,

max(case課程when'物理'then分數else0end)物理

fromtb

groupby姓名

姓名語文數學物理

--------------------- ----------- -----------

李四748494

張三748393

3、使用SQLServer 2000動態SQL

--SQLSERVER 2000動態SQL,指課程不止語文、數學、物理這三門課程。(以下同)

--變量按sql語言順序賦值

declare@sqlvarchar(500)

set@sql='select姓名'

select@sql=@sql+',max(case課程when'''+課程+'''then分數else0 end)['+課程+']'

from(selectdistinct課程fromtb)a--同fromtb group by課程,默認按課程名排序

set@sql=@sql+'from tb group by姓名'

exec(@sql)

--使用isnull(),變量先確定動態部分

declare@sqlvarchar(8000)

select@sql=isnull(@sql+',','')+'max(case課程when'''+課程+'''then分數else0 end) ['+課程+']'

from(selectdistinct課程fromtb)asa

set@sql='select姓名,'+@sql+'from tb group by姓名'

exec(@sql)

姓名數學物理語文

--------------------- ----------- -----------

李四849474

張三839374

4、使用SQLServer 2005靜態SQL

select*fromtbpivot(max(分數)for課程in(語文,數學,物理))a

5、使用SQL Server2005動態SQL

--使用stuff()

declare@sqlvarchar(8000)

set@sql=''--初始化變量@sql

select@sql=@sql+','+課程fromtbgroupby課程--變量多值賦值

set@sql=stuff(@sql,1,1,'')--去掉首個','

set@sql='select* from tbpivot (max(分數)for課程in('+@sql+'))a'

exec(@sql)

--或使用isnull()

declare@sqlvarchar(8000)

–-獲得課程集合

select@sql=isnull(@sql+',','')+課程fromtbgroupby課程

set@sql='select* from tbpivot (max(分數)for課程in('+@sql+'))a'

exec(@sql)

二、行轉列結果加上總分、平均分

1、使用SQLServer 2000靜態SQL

--SQLSERVER 2000靜態SQL

select姓名,

max(case課程when'語文'then分數else0end)語文,

max(case課程when'數學'then分數else0end)數學,

max(case課程when'物理'then分數else0end)物理,

sum(分數)總分,

cast(avg(分數*1.0)asdecimal(18,2))平均分

fromtb

groupby姓名

姓名語文數學物理總分平均分

--------------------- ----------- ----------- -----------

李四74849425284.00

張三74839325083.33

2、使用SQLServer 2000動態SQL

--SQLSERVER 2000動態SQL

declare@sqlvarchar(500)

set@sql='select姓名'

select@sql=@sql+',max(case課程when'''+課程+'''then分數else0 end)['+課程+']'

from(selectdistinct課程fromtb)a

set@sql=@sql+',sum(分數)總分,cast(avg(分數*1.0)as decimal(18,2))平均分fromtb group by姓名'

exec(@sql)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线观看一区二区三区| 深夜福利亚洲导航| 亚洲欧美激情一区| 久久夜色撩人精品| 日韩中文字幕网址| 亚洲精品久久久久久久久久久久久| 欧美成人性色生活仑片| 亚洲国模精品一区| 精品毛片三在线观看| 久久99视频免费| 欧美日韩免费在线观看| 最近2019中文字幕在线高清| 亚洲精品中文字幕有码专区| 亚洲美女av在线| 亚洲第一视频网站| 色综合天天综合网国产成人网| 最新国产精品亚洲| 久久婷婷国产麻豆91天堂| 日韩av手机在线看| 色偷偷888欧美精品久久久| 亚洲日本中文字幕免费在线不卡| 国产综合久久久久久| 亚洲成人教育av| 欧亚精品在线观看| 国产91ⅴ在线精品免费观看| 欧美性色19p| 国产一区二区三区在线观看网站| 日本sm极度另类视频| 成人在线视频福利| 亚洲va欧美va国产综合久久| 亚洲国产99精品国自产| 中文字幕日韩精品在线| 日韩影视在线观看| 97视频在线观看免费高清完整版在线观看| 亚洲第一区中文字幕| 国产精品第一区| 91精品国产电影| 欧美国产日韩在线| 亚洲午夜精品久久久久久性色| 欧亚精品在线观看| 热门国产精品亚洲第一区在线| 欧美丰满老妇厨房牲生活| 中文字幕亚洲欧美日韩2019| 深夜成人在线观看| 日韩欧美国产视频| 久久国产精品久久久| 成人在线精品视频| 色多多国产成人永久免费网站| 97在线观看视频国产| 2020欧美日韩在线视频| 国产一区二区三区高清在线观看| 九九精品视频在线观看| 国产福利精品av综合导导航| 欧美精品激情视频| 国产成人av在线| 在线观看国产精品淫| 亚洲第一区在线| 亚洲精品不卡在线| 4388成人网| 欧美老妇交乱视频| 国产大片精品免费永久看nba| 精品国产一区二区三区久久久| 日日骚久久av| 国产精品永久在线| 欧美国产日韩在线| 亚洲欧美中文日韩v在线观看| 日韩精品中文字幕在线播放| 一区二区三区精品99久久| 亚洲a级在线播放观看| 麻豆精品精华液| 92版电视剧仙鹤神针在线观看| 97国产精品人人爽人人做| 欧美精品videossex88| www国产精品视频| 91视频8mav| 激情亚洲一区二区三区四区| 日韩精品免费电影| 久久在线精品视频| 8090理伦午夜在线电影| 美女av一区二区| 97婷婷大伊香蕉精品视频| 久久久99久久精品女同性| www.欧美免费| 国产成人精品一区二区| 亚洲精美色品网站| 狠狠躁夜夜躁人人爽超碰91| 亚洲欧洲日产国码av系列天堂| 国产精品扒开腿做| 亚洲老头同性xxxxx| 777精品视频| 成人美女免费网站视频| 国产精品成人va在线观看| 亚洲成人a级网| 欧美大人香蕉在线| 日韩av在线免费播放| 久久综合九色九九| 国产91ⅴ在线精品免费观看| 亚洲欧美在线x视频| 亚洲精品久久久久中文字幕二区| 国产美女搞久久| 亚洲第一色中文字幕| 亚洲日韩欧美视频| 亚洲v日韩v综合v精品v| 国产丝袜精品视频| 欧美日韩不卡合集视频| 欧美性极品xxxx做受| 国产精品视频白浆免费视频| 亚洲高清久久网| 国产欧美日韩中文字幕在线| 萌白酱国产一区二区| 亚洲第一精品久久忘忧草社区| 久久97精品久久久久久久不卡| 中文.日本.精品| 欧美成人久久久| 夜夜狂射影院欧美极品| 黑丝美女久久久| 国产日韩欧美在线| 精品国产31久久久久久| 91国产精品视频在线| 一道本无吗dⅴd在线播放一区| 国产成人综合久久| 日韩中文字幕免费看| 日韩a**站在线观看| 国产精品国产三级国产aⅴ9色| 国产日本欧美在线观看| 久久精品中文字幕电影| 91精品综合视频| 91丨九色丨国产在线| 91成人福利在线| 欧美日韩国产色视频| 91福利视频在线观看| 欧亚精品在线观看| 懂色av一区二区三区| 欧洲精品在线视频| 日韩在线免费高清视频| 日韩一区二区福利| 国产精品久久久久国产a级| 成人激情在线播放| 国产一区二区三区在线视频| 久久影院资源网| 亚洲经典中文字幕| 92裸体在线视频网站| 91国产一区在线| 亚洲va欧美va国产综合剧情| 欧美xxxx做受欧美.88| 成人欧美一区二区三区在线湿哒哒| 97超碰国产精品女人人人爽| 成人国产精品一区| 亚洲精品久久久久久久久久久久久| 91深夜福利视频| 欧美另类暴力丝袜| 搡老女人一区二区三区视频tv| 国产一区二区三区在线看| 久久久99免费视频| 日韩美女视频中文字幕| 精品国产91久久久| 亚洲久久久久久久久久久| 欧美在线中文字幕| 精品久久久91| 亚洲第一区中文字幕| 国产成人精品免费视频| 一本色道久久88综合亚洲精品ⅰ| 欧美电影电视剧在线观看| 国产一区二区三区毛片|