sql 中case when 基礎使用

2021-08-03 20:43:12 字數 1638 閱讀 7432

sql 語句中 case when then 簡單使用

(因為表很簡單,就不為大家展示建表的**了

select * from `user`;

結果如圖:

when 1 then '男'

when 2 then '女'

else '寵物'

end) 性別

from user u;

查詢結果如下

從中可以看出我們的case函式是作為乙個單獨列顯示的,並把***=1的,變成男進行顯示

簡單case函式的寫法相對比較簡潔,但是和case搜尋函式相比,功能方面會有些限制,比如寫判定式。

select u.name,u.***,

(case 

when u.***=1 then '男'

when u.***=2 then '女'

else '寵物'

end) 性別

from user u; 

此sql語句的查詢結束是相同的

還有乙個需要注重的問題,

case函式只返回第乙個符合條件的值,剩下的case部分將會被自動忽略

如果我們把上面的**改寫為

when u.***=1 then '男'

when u.***=1 then '女'

這樣查詢結果就不會出現『女』了。

end)男,

sum(

case u.***

when 2 then 1

else 0

end)女

from `user` u;

查詢結果如下

需要注意的是,這裡的sum計算的是then之後數字之和,所以then之後必須為1而else為0.

那麼我們在用count進行一次查詢

select

count(

case u.***

when 1 then 3

end)男,

count(

case u.***

when 2 then 4

end)女

from `user` u;

查詢結果依然不變,仔細觀察可以發現這次then之後跟什麼數字都無所謂了。

【以上就是我對case的一些淺顯的認識】

SQL中case when的用法

一.單個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 bat...

SQL中的CASE WHEN語句

一張表資料如下 1900 1 1勝 1900 1 1勝 1900 1 1負 1900 1 2勝 1900 1 2勝 寫出一條sql語句,使檢索結果如下 勝負1900 1 121 1900 1 220 我隨手建了這樣乙個表 create table test datevarchar 50 null,r...

SQL中的CASE WHEN語句

今天.net新手群中有人出了這樣一道面試題 一張表資料如下 1900 1 1 勝 1900 1 1 勝 1900 1 1 負 1900 1 2 勝 1900 1 2 勝 寫出一條sql語句,使檢索結果如下 勝 負 1900 1 1 2 1 1900 1 2 2 0我隨手建了這樣乙個表 create ...