校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > sql 普通行列轉換

sql 普通行列轉換

熱門標簽:電銷機器人公司 需要哪些牌照 長沙智能外呼系統 湖南電腦外呼系統平臺 分享百度地圖標注多個位置 地圖標注牌 知名電銷機器人價格 外呼系統改進 廣東防封卡外呼系統原理是什么 菏澤語音電銷機器人加盟公司
問題:假設有張學生成績表(tb)如下:
姓名 課程 分數
張三 語文 74
張三 數學 83
張三 物理 93
李四 語文 74
李四 數學 84
李四 物理 94
想變成(得到如下結果):
姓名 語文 數學 物理
---- ---- ---- ----
李四 74 84 94
張三 74 83 93
-------------------
*/
create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)
insert into tb values('張三' , '語文' , 74)
insert into tb values('張三' , '數學' , 83)
insert into tb values('張三' , '物理' , 93)
insert into tb values('李四' , '語文' , 74)
insert into tb values('李四' , '數學' , 84)
insert into tb values('李四' , '物理' , 94)
go
--SQL SERVER 2000 靜態SQL,指課程只有語文、數學、物理這三門課程。(以下同)
select 姓名 as 姓名 ,
max(case 課程 when '語文' then 分數 else 0 end) 語文,
max(case 課程 when '數學' then 分數 else 0 end) 數學,
max(case 課程 when '物理' then 分數 else 0 end) 物理
from tb
group by 姓名
--SQL SERVER 2000 動態SQL,指課程不止語文、數學、物理這三門課程。(以下同)
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 課程 when ''' + 課程 + ''' then 分數 else 0 end) [' + 課程 + ']'
from (select distinct 課程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)
--SQL SERVER 2005 靜態SQL。
select * from (select * from tb) a pivot (max(分數) for 課程 in (語文,數學,物理)) b
--SQL SERVER 2005 動態SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + 課程 from tb group by 課程
set @sql = '[' + @sql + ']'
exec ('select * from (select * from tb) a pivot (max(分數) for 課程 in (' + @sql + ')) b')
---------------------------------
/*
問題:在上述結果的基礎上加平均分,總分,得到如下結果:
姓名 語文 數學 物理 平均分 總分
---- ---- ---- ---- ------ ----
李四 74 84 94 84.00 252
張三 74 83 93 83.33 250
*/
--SQL SERVER 2000 靜態SQL。
select 姓名 姓名,
max(case 課程 when '語文' then 分數 else 0 end) 語文,
max(case 課程 when '數學' then 分數 else 0 end) 數學,
max(case 課程 when '物理' then 分數 else 0 end) 物理,
cast(avg(分數*1.0) as decimal(18,2)) 平均分,
sum(分數) 總分
from tb
group by 姓名
--SQL SERVER 2000 動態SQL。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 課程 when ''' + 課程 + ''' then 分數 else 0 end) [' + 課程 + ']'
from (select distinct 課程 from tb) as a
set @sql = @sql + ' , cast(avg(分數*1.0) as decimal(18,2)) 平均分 , sum(分數) 總分 from tb group by 姓名'
exec(@sql)
--SQL SERVER 2005 靜態SQL。
select m.* , n.平均分 , n.總分 from
(select * from (select * from tb) a pivot (max(分數) for 課程 in (語文,數學,物理)) b) m,
(select 姓名 , cast(avg(分數*1.0) as decimal(18,2)) 平均分 , sum(分數) 總分 from tb group by 姓名) n
where m.姓名 = n.姓名
--SQL SERVER 2005 動態SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + 課程 from tb group by 課程
exec ('select m.* , n.平均分 , n.總分 from
(select * from (select * from tb) a pivot (max(分數) for 課程 in (' + @sql + ')) b) m ,
(select 姓名 , cast(avg(分數*1.0) as decimal(18,2)) 平均分 , sum(分數) 總分 from tb group by 姓名) n
where m.姓名 = n.姓名')
drop table tb
------------------
------------------
/*
問題:如果上述兩表互相換一下:即表結構和數據為:
姓名 語文 數學 物理
張三 74  83  93
李四 74  84  94
想變成(得到如下結果):
姓名 課程 分數
---- ---- ----
李四 語文 74
李四 數學 84
李四 物理 94
張三 語文 74
張三 數學 83
張三 物理 93
--------------
*/
create table tb(姓名 varchar(10) , 語文 int , 數學 int , 物理 int)
insert into tb values('張三',74,83,93)
insert into tb values('李四',74,84,94)
go
--SQL SERVER 2000 靜態SQL。
select * from
(
select 姓名 , 課程 = '語文' , 分數 = 語文 from tb
union all
select 姓名 , 課程 = '數學' , 分數 = 數學 from tb
union all
select 姓名 , 課程 = '物理' , 分數 = 物理 from tb
) t
order by 姓名 , case 課程 when '語文' then 1 when '數學' then 2 when '物理' then 3 end
--SQL SERVER 2000 動態SQL。
--調用系統表動態生態。
declare @sql varchar(8000)
select @sql = isnull(@sql + ' union all ' , '' ) + ' select 姓名 , [課程] = ' + quotename(Name , '''') + ' , [分數] = ' + quotename(Name) + ' from tb'
from syscolumns
where name! = N'姓名' and ID = object_id('tb') --表名tb,不包含列名為姓名的其它列
order by colid asc
exec(@sql + ' order by 姓名 ')
--SQL SERVER 2005 動態SQL。
select 姓名 , 課程 , 分數 from tb unpivot (分數 for 課程 in([語文] , [數學] , [物理])) t
--SQL SERVER 2005 動態SQL,同SQL SERVER 2000 動態SQL。
--------------------
/*
問題:在上述的結果上加個平均分,總分,得到如下結果:
姓名 課程 分數
---- ------ ------
李四 語文 74.00
李四 數學 84.00
李四 物理 94.00
李四 平均分 84.00
李四 總分 252.00
張三 語文 74.00
張三 數學 83.00
張三 物理 93.00
張三 平均分 83.33
張三 總分 250.00
------------------
*/
select * from
(
select 姓名 as 姓名 , 課程 = '語文' , 分數 = 語文 from tb
union all
select 姓名 as 姓名 , 課程 = '數學' , 分數 = 數學 from tb
union all
select 姓名 as 姓名 , 課程 = '物理' , 分數 = 物理 from tb
union all
select 姓名 as 姓名 , 課程 = '平均分' , 分數 = cast((語文 + 數學 + 物理)*1.0/3 as decimal(18,2)) from tb
union all
select 姓名 as 姓名 , 課程 = '總分' , 分數 = 語文 + 數學 + 物理 from tb
) t
order by 姓名 , case 課程 when '語文' then 1 when '數學' then 2 when '物理' then 3 when '平均分' then 4 when '總分' then 5 end
drop table tb
您可能感興趣的文章:
  • 一個簡單的SQL 行列轉換語句
  • sqlserver2005 行列轉換實現方法
  • C#中DataTable實現行列轉換的方法
  • 淺析SQL語句行列轉換的兩種方法 case...when與pivot函數的應用
  • 深入SQL中PIVOT 行列轉換詳解
  • Sql實現行列轉換方便了我們存儲數據和呈現數據
  • 玩轉-SQL2005數據庫行列轉換
  • Oracle實現行列轉換的方法分析
  • JS控制網頁動態生成任意行列數表格的方法
  • 數據庫實現行列轉換(mysql示例)

標簽:珠海 商洛 泉州 呼和浩特 美容院 天水 西寧 福建

巨人網絡通訊聲明:本文標題《sql 普通行列轉換》,本文關鍵詞  sql,普通,行列,轉換,sql,普通,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sql 普通行列轉換》相關的同類信息!
  • 本頁收集關于sql 普通行列轉換的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日本在线不卡视频| 欧美一区二区黄色| 国产一二精品视频| 美国欧美日韩国产在线播放| 日日欢夜夜爽一区| 免费人成精品欧美精品| 亚洲成a天堂v人片| 男女男精品网站| 精品在线亚洲视频| 国产ts人妖一区二区| 成人国产精品免费| 一本久久a久久免费精品不卡| 91香蕉视频污| 欧美日韩国产精品自在自线| 这里只有精品免费| 久久久美女毛片 | 亚洲国产综合色| 樱桃视频在线观看一区| 亚洲成人综合视频| 久久精品国产澳门| 99精品1区2区| 欧美日产国产精品| 国产日韩欧美综合一区| 自拍av一区二区三区| 五月天亚洲精品| 国产精品1024| 欧美日韩一级视频| 久久青草国产手机看片福利盒子| 中文字幕精品一区二区三区精品| 亚洲影视资源网| 国产一区激情在线| 欧美自拍偷拍一区| www国产亚洲精品久久麻豆| 国产精品久久久久影院亚瑟| 日韩 欧美一区二区三区| 高清不卡在线观看| 在线成人午夜影院| 国产精品久久久久影院| 日本成人中文字幕| 97se狠狠狠综合亚洲狠狠| 欧美三级蜜桃2在线观看| 精品国产一区二区亚洲人成毛片| 亚洲精品免费一二三区| 国产精品白丝av| 7777精品伊人久久久大香线蕉超级流畅 | 欧美高清精品3d| 欧美国产视频在线| 美女看a上一区| 欧美性色黄大片手机版| 中文字幕欧美区| 久久精品国产免费| 欧美影视一区在线| 国产亚洲美州欧州综合国| 亚洲国产成人av| 99久久综合狠狠综合久久| 精品国产污污免费网站入口| 亚洲福利视频三区| 91丝袜美女网| 日韩理论片一区二区| 国产精品中文有码| 日韩欧美精品在线视频| 日韩av网站在线观看| 欧美日韩www| 亚洲视频在线一区观看| 成人av在线看| 国产精品电影院| 99久久精品国产精品久久| 国产精品热久久久久夜色精品三区 | 亚洲一区二区在线视频| www.色综合.com| 国产女人18毛片水真多成人如厕| 韩国毛片一区二区三区| 精品福利av导航| 国产精品亚洲一区二区三区妖精 | 欧美高清视频一二三区| 一二三区精品视频| 97国产精品videossex| 亚洲同性gay激情无套| 91热门视频在线观看| 自拍偷拍欧美激情| 在线亚洲高清视频| 午夜久久久久久| 欧美一二三区在线观看| 久久国产精品99久久久久久老狼 | 成人18精品视频| 成人欧美一区二区三区白人 | 欧美精选一区二区| 久久免费美女视频| 国产91清纯白嫩初高中在线观看| 国产欧美日韩精品一区| 色综合夜色一区| 国产美女在线观看一区| 欧美一区二区三区日韩| 日本不卡1234视频| 精品国产乱码久久久久久老虎| 国产精品亚洲成人| 中文字幕一区日韩精品欧美| 在线看日本不卡| 精品在线一区二区三区| 国产精品美女久久久久高潮| 欧美性大战xxxxx久久久| 久久精品国产免费| 综合分类小说区另类春色亚洲小说欧美 | 欧美综合色免费| 日日夜夜免费精品| 久久久久成人黄色影片| 在线视频中文字幕一区二区| 久久国产精品99精品国产| 国产精品久久久久久亚洲伦| 欧美三级电影一区| 国产精品18久久久久久vr| 亚洲香肠在线观看| 久久精品夜色噜噜亚洲a∨| 91国偷自产一区二区开放时间| 久久99精品久久久久久国产越南 | 韩日精品视频一区| 亚洲视频在线观看一区| 日韩午夜三级在线| 色婷婷激情久久| 国产乱人伦偷精品视频免下载| 亚洲午夜激情网站| 欧美国产精品久久| 日韩一级大片在线| 91官网在线观看| 成人性生交大片| 日本aⅴ免费视频一区二区三区| 欧美激情中文字幕| 在线播放亚洲一区| 91成人国产精品| av色综合久久天堂av综合| 国产一区二区三区日韩| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产传媒久久文化传媒| 亚洲成av人片一区二区梦乃 | 激情图区综合网| 午夜视频久久久久久| 亚洲黄网站在线观看| 国产欧美一区二区精品性色 | 一区二区三区日韩精品| 国产女同性恋一区二区| 久久免费美女视频| 精品国产乱码久久久久久蜜臀 | 在线不卡中文字幕| 欧美在线免费视屏| 色哟哟在线观看一区二区三区| 成人动漫视频在线| 成人午夜激情视频| 国产一二三精品| 国产成人欧美日韩在线电影| 国产高清亚洲一区| 成人美女视频在线观看18| 国产激情一区二区三区| 国产成人自拍高清视频在线免费播放| 麻豆91精品91久久久的内涵| 奇米一区二区三区| 免费欧美在线视频| 国产综合色产在线精品| 国产成人免费在线视频| av中文一区二区三区| 一本色道久久综合亚洲91| 91成人免费在线| 7777精品伊人久久久大香线蕉的 | 69成人精品免费视频| 91精品欧美福利在线观看| 日韩三级精品电影久久久| 日韩欧美成人午夜| 国产日韩欧美综合一区| 国产精品夫妻自拍| 亚洲一卡二卡三卡四卡无卡久久| 香蕉影视欧美成人| 久久超碰97中文字幕| 成人激情小说乱人伦| 91黄色免费看| 日韩精品中文字幕在线不卡尤物| 久久亚洲一区二区三区明星换脸 | 欧洲一区二区三区在线| 91精品欧美一区二区三区综合在| 日韩视频永久免费| 国产三级一区二区| 亚洲伊人色欲综合网| 久久99国产精品久久99| av色综合久久天堂av综合| 在线91免费看| 国产精品欧美一区喷水| 日韩精品一二三| 国产成人精品免费一区二区| 91久久精品一区二区三区| 日韩欧美在线一区二区三区| 国产精品免费视频观看| 亚洲成av人**亚洲成av**| 久久精品国产秦先生| 色偷偷久久人人79超碰人人澡| 日韩欧美成人激情| 亚洲激情男女视频| 国产成人啪免费观看软件| 欧美高清视频不卡网| 亚洲欧美日韩国产手机在线| 狠狠色丁香婷婷综合| 欧美午夜在线观看| 亚洲欧美一区二区在线观看|