MySQL 行變列 查詢

2021-06-29 00:47:21 字數 1230 閱讀 8360



sql語言的case語句備忘

概述:

sql語句中的case語句與高階語言中的switch語句,是標準sql的語法,適用與乙個條件判斷有多種值的情況下分別執行不同的操作。靈活應用case語句可以使sql語句變得簡潔易讀,下面在db2環境下通過乙個簡單的查詢來展示sql case語句的強大功能。

表:t_activityconsume

award

consumetime

partnerid

markvalue

12009-01-05 13:14:43

11100

12009-01-05 13:14:43

11100

32009-01-05 13:14:43

11100

12009-01-06 13:14:43

11100

12009-01-06 13:14:43

11100

22009-01-17 13:14:43

11100

22009-01-17 13:14:43

11100

22009-01-17 13:14:43

11100

12009-01-17 13:14:43

11100

select award ,

count(case when date(consumetime)='2009-01-05' then award end) as '1月5日',

count(case when date(consumetime)='2009-01-06' then award end) as '1月6日',

count(case when date(consumetime)='2009-01-07' then award end) as '1月7日'

from t_activityconsume where partnerid='11' group by award

執行後:

award

partnerid

1月5日

1月6日

1月7日111

2212

11003

31110

04110

00511

000

用sql語句要求行變列,列變行

create table tb 姓名 varchar 10 課程 varchar 10 分數 int insert into tb values 張三 語文 74 insert into tb values 張三 數學 83 insert into tb values 張三 物理 93 insert...

Oracle行轉列 行變列

在寫一些複雜的sql的時候,經常需要使用到行變列的技巧,一些帳務系統的統計也經常會寫到這樣的sql。主要用到了max decode或nvl這些函式來達到目的。寫下來讓大家互相學習學習!下面是乙個行變列的例子。如表row2column2有以下資料 名字 課程 分數 1 張三 語文 80 2 張三 數學...

GROOVY資料列變行

在開發中遇到了列變行的問題,簡單記錄如下 tb case 記錄了 用例id 用例名稱。tb ret 記錄了執行結果,執行時間結果狀態。要求查詢一段時間內的記錄獲取如下資料包表 1點 2點 3點 4點 5點 24點 用例1 1 2 1 4 3 4 用例5 1 3 1 4 3 4 用例4 1 2 1 4...