原資料格式如下:
這是學生的成績表,每科為一列,要求轉換為下面的格式:
即,把把課程列轉換為行,把學生行轉換為列:
建表:create table #a
(name varchar(20),english int,chinese int ,math int)
insert into #a values( 'zhangsan',10,39,40)
insert into #a values( 'lisi',16,25,36)
思路:先把列轉換為行:
select name,km,score
from
(select name,english,chinese,math
from #a) a
unpivot
(score for km in
(english,chinese,math )
) as unpvt
如下資料:
然後把行name轉換為列:
select *
from
(select name,km,score from
(select name,km,score from (select name,english,chinese,math from #a) a unpivot (score for km in (english,chinese,math ) ) as unpvt) a
) apivot
(max(score) for name in (zhangsan,lisi))
as unpvt
行轉列 列轉行
行轉列 select t.t.rowid from test1 t id c1 c2 c3 1 小紅 數學 10 2 小紅 語文 20 3 小欄 數學 15 4 小欄 語文 25 test1 oracle select c1,to char wm concat c2 c2 from test1 gr...
hive 列轉行 HQL 行轉列,列轉行
1 相關函式 concat string a col,string b col 返回輸入字串連線後的結果,支援任意個輸入字串 concat ws separator,str1,str2,它是乙個特殊形式的 concat 第乙個引數剩餘引數間的分隔符。分隔符可以是與剩餘引數一樣的字串。如果分隔符是 n...
python 列轉行 SQL 行轉列,列轉行
sql 行轉列,列轉行 行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。行列轉換就是如下圖所示兩種展示形式的互相轉換 行轉列假如我們有下表 select from student pivot sum score for subject in 語文,數學,英語 通過上面 sql...