有時候多行資料需要一行顯示, 這就需要行轉列的sql啦.
首先 ,要知道 行轉列當然是要以某個字段進行分組的,然後再根據表中 乙個欄位的值做轉列後的欄位名, 這個值所對應的另乙個字段作為 值
示例:表名: xx班
班級假如:要將上表進行轉列 轉換結果如下表:學生身高一班甲
161一班
乙162一班丙
163一班
丁164一班戊
165
班級甲乙以班級進行分組, 以學生 作為欄位名,以身高為每個學生欄位的額值.丙丁戊一班
161162
163164
165
select 班級第二種sql語句, 感覺更好一點 ,sum(case when 學生 = 甲 tnen 身高 else 0 end) 甲,
sum(case when 學生 = 乙 tnen 身高 else 0 end)乙 ,
sum(case when 學生 = 丙 tnen 身高 else 0 end)丙 ,
sum(case when 學生 = 丁 tnen 身高 else 0 end)丁 ,
sum(case when 學生 = 戊 tnen 身高 else 0 end) 戊
from xx班 group by 班級
select括號中的sql 是查詢出 分組字段, 按照 班級分組, 學生和公升高是需要行轉列的*from
(select 班級,學生,身高 from xx班 )
pivot (
sum (身高) for 學生 in (
'甲'甲,
'乙'乙,
'丙'丙))
pivot後面的內容中 , 身高 字段 將作為行轉列後的值, 學生字段,將作為行轉列後的欄位名,
'甲'甲 單引號中 甲 是為了獲取對應行的值 , 後面的甲 是該值的欄位名
mysql 查詢行轉列 SQL語句實現行轉列查詢
表sales 查詢結果如下 1 建表 create table dbo sales id int identity 1,1 not null,year int null,jidu int null,jine int null,primary key clustered id asc with pad...
sql查詢行轉列
昨天下午碰到乙個需求,乙個大約30萬行的表,其中有很多重複行,在這些行中某些字段值是不重複的。比如有id,name,contract id,sales,product等,除了product欄位,其餘欄位均是一樣的,需要去重並合併product欄位。下午頭腦發昏,直接寫了個o nm 的vba 從16 ...
MySQL行轉列sql語句
create table test tb grade id int 10 notnull auto increment user name varchar 20 default null course varchar 20 default null score float default 0 pri...