MySQL資料庫縱橫表轉換

2021-08-30 02:39:22 字數 1021 閱讀 1725

1.縱表:score 目標:切換為橫表

sql語句為:

select name as 『姓名』,

max(case subject when 『語文』 then value else 0 end)as 『語文』,

max(case subject when 『數學』 then value else 0 end)as 『數學』,

max(case subject when 『英語』 then value else 0 end)as 『英語』

from score

group bynamedesc

效果為:

2.橫表subject 目標:切換為縱表

sql語句:

select * from(

select 姓名 as name ,『語文』 assubject,語文 as value from subject

union

select 姓名 as name ,『數學』 assubject,數學 as value from subject

union

select 姓名 as name ,『英語』 assubject,英語 as value from subject

)subject order by name

效果為:

1 mysql縱橫表轉換

使用縱表的優勢在於增加某種型別資料時不需要改變表結構。如課程中增加了化學。使用橫表的優勢在於欄位多,表述能力強,從而資料條目少。case when的使用 sum函式和group by的使用 create table table a 姓名 varchar 20 課程 varchar 20 成績 int...

SQL資料表縱橫轉換

select distinct select b.risk from rhwl easy genes new risk b where b.genes id a.id and b.disease b.disease as b.disease from rhwl easy genes new a,rh...

縱橫表轉換學習

動態橫表轉縱表 建表語句 if not object id class1 is null drop table class1 gocreate table class1 student nvarchar 2 數學 int,物理 int,英語 int,語文 int insert class1 sele...