一.單個case when用法
首先,新建乙個表:
create table battle(riqi date,result varchar(10))
插入資料:
insert all
into battle values(to_date('2005-05-09','yyyy-mm-dd'),'win')
into battle values(to_date('2005-05-09','yyyy-mm-dd'),'lose')
into battle values(to_date('2005-05-09','yyyy-mm-dd'),'lose')
into battle values(to_date('2005-05-09','yyyy-mm-dd'),'lose')
into battle values(to_date('2005-05-10','yyyy-mm-dd'),'win')
into battle values(to_date('2005-05-10','yyyy-mm-dd'),'lose')
into battle values(to_date('2005-05-10','yyyy-mm-dd'),'lose')
select 1 from dual;
檢視剛才的表:
select * from battle
顯示如下:
現在我們要把所有日期勝利次數,失敗次數分別顯示出來:
預期**如下:
riqi
winlose
2005-05-0913
2005-05-1012
解決方案一:
case 搜尋語句
select riqi, sum(case when result = 'win' then 1 else 0 end) as win, sum(case when result = 'lose' then 1 else 0 end) as lose from battle group by riqi;
解決方案二:
case普通語句
select riqi, sum(case result when 'win' then 1 else 0 end) as win, sum(case result when 'lose' then 1 else 0 end)as lose from battle group by riqi;
二、多個case when的使用
有一張表,裡面有3個字段:chinese,math,english。其中有一條記錄chinese 70分,math 80分,english 58分,請用一條sql語句查詢出所有記錄並按以下條件顯示出來(並寫出您的思路):
大於或等於80表示excellent,大於或等於60表示pass,小於60分表示fail。 如下表:
科目chinese
math
english
level
pass
excellent
fail
select (case when chinese >= 80 then "excellent" when chinese >= 60 then "pass" else "fail" end) as chinese,
(case when math >= 80 then "excellent" when math >= 60 then "pass" else "fail" end) as math,
(case when english >= 80 then "excellent" when english >= 60 then "pass" else "fail" end) as english
from grade;
注意:在python中,case when的語句最好在後面加as(下圖中圈中部分)且後面的命名也要注意,不然會報錯 unicodedecodeerror: 『ascii』 codec can』t decode byte 0xe4 in position 0: ordinal not in range(128),現在還不清楚是不是這個原因,但是加上之後就沒有報錯了,暫時先這樣記錄
sql中的case when的用法
case有兩種用法 一種是case簡單表示式用法 for example case when 1 then 男 when 2 then 女 else 其他 end另外一種是case搜尋表示式的用法 for example case when 1 then 男 when 2 then 女 else 其...
SQL中case when語句的用法
個人學習筆記,歡迎指導!用法 1 case 欄位名 when 字段值 then 值1 else 值2 end 這一種是之前比較常用的一種方式,相當於是大部分程式語言中的switch case的用法,通過欄位名,去匹配字段值,適合字段值比較固定的情況下使用,特點是比較簡潔易用。示例一 and stat...
自學SQL之CASE WHEN用法
場景1 統計,有多少男同學,多少女同學,並統計男同學中有幾人及格,女同學中有幾人及格,要求用乙個sql輸出結果。表結構如下 其中stu 字段,0表示男生,1表示女生 stu code stu name stu stu score xm小明088 xl小磊055 xf小峰045 xh小紅166 xn曉...