今天做寫sql的時候遇到了列轉行的問題,以前寫過,下面是找到的方法,大家複習一下吧。
列轉行
create table test (name char(10),km char(10),cj int)
insert test values('張三','語文',80)
insert test values('張三','數學',86)
insert test values('張三','英語',75)
insert test values('李四','語文',78)
insert test values('李四','數學',85)
insert test values('李四','英語',78)
select name,
sum(decode(km,'語文',cj,0)) 語文 ,
sum(decode(km,'數學',cj,0)) 數學,
sum(decode(km,'英語',cj,0)) 英語
from test1
group by name
姓名 語文 數學 英語
張三 80 86 75
李四 78 85 78
行轉列select 姓名, decode(rn, 1, 語文, 2, 數學, 3,英語)
from test1 , (select level rn from dual connect by 1=1 and level <=3)
oracle行轉列 列轉行
一 行轉列 需要將如下格式 轉換為 這就是最常見的行轉列,主要原理是利用decode函式 聚集函式 sum 結合group by分組實現的 create table test id varchar2 255 primary key not null,name varchar2 255 course ...
Oracle行轉列和列轉行
1.1 初始測試資料 表結構 test tb grade sql 1 create table test tb grade 2 3 id number 10 not null,4 user name varchar2 20 char 5 course varchar2 20 char 6 score...
Oracle行轉列和列轉行
一 行轉列 1.1 初始測試資料 表結構 test tb grade sql 1 create table test tb grade 2 3 id number 10 not null,4 user name varchar2 20 char 5 course varchar2 20 char 6...