題目:資料庫中有一張如下所示的表,表名為sales。年
季度銷售量
1991111
1991212
1991313
1991414
1992121
1992222
1992323
1992424
要求:寫乙個sql語句查詢出如下所示的結果。年
一季度二季度
三季度四季度
1991
1112
1314
1992
2122
2324
這裡只貼mysql中查詢答案,最近開發用的都是mysql資料庫。貌似oracle有更簡潔的寫法。
最簡單的方法,子查詢:
select s.`year`,
(select sa.`saleamount`from sales sa where sa.`year`=s.`year` and sa.`quarter`=1) as '第一季度',
(select sa.`saleamount`from sales sa where sa.`year`=s.`year` and sa.`quarter`=2) as '第二季度',
(select sa.`saleamount`from sales sa where sa.`year`=s.`year` and sa.`quarter`=3) as '第三季度',
(select sa.`saleamount`from sales sa where sa.`year`=s.`year` and sa.`quarter`=4) as '第四季度'
from sales s group by s.`year`
這是參考別人的寫法,用case when then
select s.`year` as '年度',
(case when s.`quarter`=1 then s.`saleamount` end) as '第一季度',
(case when s.`quarter`=1 then s.`saleamount` end) as '第二季度',
(case when s.`quarter`=1 then s.`saleamount` end) as '第三季度',
(case when s.`quarter`=1 then s.`saleamount` end) as '第四季度'
from sales s group by s.`year`
SQL(行列互換)
有乙個sql題在面試中出現的概率極高,最近有學生出去面試仍然會遇到這樣的題目,在這裡跟大家分享一下。題目 資料庫中有一張如下所示的表,表名為sales。年 季度銷售量 1991111 1991212 1991313 1991414 1992121 1992222 1992323 1992424 要求...
SQL行列互換
有乙個sql題在面試中出現的概率極高,在這裡跟大家分享一下。題目 資料庫中有一張如下所示的表,表名為sales。年 季度銷售量 1991111 1991212 1991313 1991414 1992121 1992222 1992323 1992424 要求 寫乙個sql語句查詢出如下所示的結果。...
SQL 行列互換
一 行轉列 1 建立 ifobject id tb is notnull drop tabletb go create tabletb 姓名varchar 10 課程varchar 10 分數int insert intotbvalues 張三 語文 74 insert intotbvalues 張...