国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

sql server行轉(zhuǎn)列問題終極解決

2024-08-31 00:51:24
字體:
供稿:網(wǎng)友

主要應(yīng)用case語句來解決行轉(zhuǎn)列的問題

行轉(zhuǎn)列問題主要分為兩類

1)簡單的行轉(zhuǎn)列問題:

示例表:

id  sid           course  result

1   2005001 語文     80.0
2   2005001 數(shù)學(xué)     90.0
3   2005001 英語     80.0
4   2005002 語文     56.0
5   2005002 數(shù)學(xué)     69.0
6   2005002 英語     89.0

執(zhí)行

select sid,語文=isnull(sum(case course when '語文' then result end),0),
   數(shù)學(xué)=isnull(sum(case course when '數(shù)學(xué)' then result end),0),
   英語=isnull(sum(case course when '英語' then result end),0)
   from result
   group by sid
   order by sid

 

得出結(jié)果

sid           語文 數(shù)學(xué) 英語

2005001 80.0  90.0  80.0
2005002 56.0  69.0  89.0

 

2)較為復(fù)雜的行轉(zhuǎn)列

表1:course

id name

1 語文
2 數(shù)學(xué)
3 英語


表2:result

id sid          course  result

1 2005001 語文      80.0
2 2005001 數(shù)學(xué)      90.0
3 2005001 英語      80.0
4 2005002 語文      56.0
5 2005002 數(shù)學(xué)      69.0
6 2005002 英語      89.0

 

declare @sql varchar(8000)
set @sql='select sid'
select @sql=@sql+','+course.name+'=isnull(sum(case course when '''+course.name+''' then result end),0)'
 from course order by id
set @sql=@sql+' from result group by sid order by sid'
PRint @sql
exec(@sql)

 

得出結(jié)果

sid           語文 數(shù)學(xué) 英語

2005001 80.0  90.0  80.0
2005002 56.0  69.0  89.0

http://blog.csdn.net/tthxqttzln/archive/2007/02/02/1500825.aspx


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 习水县| 旬阳县| 永济市| 石林| 卫辉市| 呼玛县| 涪陵区| 双流县| 永兴县| 长治市| 钟祥市| 桐柏县| 锦州市| 丹江口市| 建湖县| 巴东县| 临沧市| 平舆县| 乌兰浩特市| 西青区| 昌吉市| 汶上县| 云龙县| 锦州市| 余干县| 洛川县| 敖汉旗| 铁力市| 宁明县| 垫江县| 玛曲县| 色达县| 和平县| 定兴县| 刚察县| 西华县| 铜梁县| 黄平县| 甘德县| 河北区| 剑川县|