Oracle中case when語句的用法

2021-09-01 09:39:18 字數 1230 閱讀 4600

case when語法:

case

whenthen

whenthen

else

endcase when else語法要點說明如下:

1、以case開頭,以end結尾

2、分支中when 後跟條件,then為顯示結果

3、else 為除此之外的預設情況,類似於高階語言程式中switch case的default,可以不加

4、end 後跟別名

例1:

select u.user_code, u.***,

( case u.***

when 0 then '男'

when 1 then '女'

else '未知'

end)性別

from tb_secure_user u

例2:將sum與case結合使用,可以實現分段統計,如將表中各種性別的人數進行統計:

select

sum( case u.*** when 0 then 1 else 0 end) 男性,

sum( case u.*** when 1 then 1 else 0 end ) 女性,

sum( case when u.***<>0 and u.***<>1 then 1 else 0 end ) 性別未知

from tb_secure_user u

查詢結果:

男性 女性 性別未知

20    17     0

例3:sum、case when結合group by使用,可以進行分組分段統計。

如統計users表中每個建立者建立的男性、女性的使用者總數

select u.create_user_id 建立者id,

sum( case u.*** when 0 then 1 else 0 end) 男性,

sum( case u.*** when 1 then 1 else 0 end ) 女性,

sum( case when u.***<>0 and u.***<>1 then 1 else 0 end ) 性別未知

from tb_secure_user u

group by u.create_user_id

查詢結果:

建立者id 男性 女性 性別未知

10000000 14 8 0

00000405 4 8 0

20000000 1 0 0

00000445 1 1 0

Oracle中case when的用法

最早接觸case when是在行列轉的時候,資料庫中最難的就是各種的查詢,此次的業務需要匯出excel,匯出的內容包含了很多的字段,各種聯合查詢,還有需要計算 分組聯合等。歷經整整一下午終於以近兩百行結束了這個業務。特記錄對於case when的用法,歡迎各位朋友指正,不喜勿噴。首先case whe...

Oracle中CASE WHEN的用法例項

例項演示 1 查詢表users中的資料。select u.id,u.realname,u.from users u 查詢結果如下 id realname 1 10082 松xx 2 10084 林xx 1 3 10087 西xx 4 10100 胡xx 5 10102 龍xx 1 2 上表結果中的 ...

Oracle中的case when的使用

今天要用sql實現乙個小小的邏輯,總之呢,需要用到一些判斷條件,所以準備使用一下 case when的用法,但是由於之前只寫過case when else end單條語句,沒有寫過巢狀,而且 感覺sql寫起來也不好除錯,所以在網上找了下資料。第一步,先寫乙個簡單的巢狀測試一下 select case...