SQL實現行列轉換 MySQL

2021-08-21 04:10:13 字數 670 閱讀 5915

示例資料:

(tablename為col_index)

實現行列轉換的統計結果:

sql語句:

select c2,

sum(case

when c3 = '正式'

then

1else

0end) as

"正式",

sum(case

when c3 = '臨時'

then

1else

0end) as

"臨時"

from col_index

group

by c2

雖然sql的case功能確實很少接觸過,面試遇到不會的題目確實很令人沮喪.

上述查詢的要點在於sum 和 case返回1/0和group by.

唯一的不足在於需要提前知道列屬性有多少種,即除了」正式」,」臨時」還有哪些.

配合for可以解決這個問題.

吃一蟄長一智吧.

SQL 實現行列轉換

今天有個有這樣的需求,那就看看這個例項吧 create table tb 姓名 varchar 10 課程 varchar 10 分數 int insert tb select 張三 語文 60 union all select 張三 數學 70 union all select 張三 英語 80 ...

實現行列轉換

構建測試表 sql create table table1 id integer,name varchar2 10 create table table2 id integer,role varchar2 10 insert into table1 id,name values 1,張三 inser...

oracle實現行列轉換

ql select from student idname chinese math english 1a 90 70 80 2b 80 70 90 3c 80 90 70 select id,name,chinese 課程,chinese 分數 from student union all sel...