行列轉置(Oracle)

2022-03-27 13:08:47 字數 2050 閱讀 7261

行列轉換包含如下幾種形式:行轉列、列轉行、多列轉換成字串、多行轉換成字串、字串轉換成多列、字串轉換成多行

create

table

student(

id number

, name

varchar2(20

), course

varchar2(20

), score

number

)

插入測試資料,如下:

結果集如下:      

select id,name,sum(decode(course,'

chinese

',score,null

)) "chinese",

sum(decode(course,'

math

',score,null

)) "math",

sum(decode(course,'

english

',score,null

)) "english"

from

student

group

by id,name

結果集如下:

select id,name,sum(case

when course=

'chinese

'then score end

) "chinese",

sum(case

when course=

'math

'then score end

) "math",

sum(case

when course=

'english

'then score end

) "english"

from

student

group

by id,name

結果集如下:

使用上面的查詢結果:

create

table scores as

select id,name,sum(case

when course=

'chinese

'then score end

) "chinese",

sum(case

when course=

'math

'then score end

) "math",

sum(case

when course=

'english

'then score end

) "english"

from

student

group

byid,name

order

by i

得到表及記錄如下:

結果集如下:

Oracle 行列轉置

兩種簡單的行列轉置 1 固定列數的行列轉換 如student subject grade student1 語文 80 student1 數學 70 student1 英語 60 student2 語文 90 student2 數學 80 student2 英語 100 轉換為 語文 數學 英語 s...

Oracle 行列轉置

兩種簡單的行列轉置 1 固定列數的行列轉換 如student subject grade student1 語文 80 student1 數學 70 student1 英語 60 student2 語文 90 student2 數學 80 student2 英語 100 轉換為 語文 數學 英語 s...

SQL 行列轉置

我學會了第二種方法 sql2005中的方法 create table tb id int,value varchar 10 insert into tb values 1,aa insert into tb values 1,bb insert into tb values 2,aaa insert...