行轉列 列轉行 oracle滴

2021-05-22 05:06:17 字數 887 閱讀 5361

今天做寫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...