Oracle中case?when函數(shù)的用法
一、case when 的基本用法見(jiàn):
二、case when在select語(yǔ)句中的用法
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 ELSE NULL END) 男生數(shù), COUNT (CASE WHEN sex = 2 THEN 1 ELSE NULL END) 女生數(shù) FROM students GROUP BY grade;
1、在Case函數(shù)中,可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等。
Case函數(shù)不同于DECODE函數(shù)。在Case函數(shù)中,可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等等。比如說(shuō)使用IN,EXISTS,可以進(jìn)行子查詢(xún),從而 實(shí)現(xiàn)更多的功能。
SELECT keyCol, CASE WHEN keyCol IN ( SELECT keyCol FROM tbl_B ) THEN 'Matched' ELSE 'Unmatched' END Label FROM tbl_A;
也可以使用NOT IN和NOT EXISTS,但是這個(gè)時(shí)候要注意NULL的情況。
2、根據(jù)條件有選擇的UPDATE。
UPDATE PersonnelSET salary = CASE WHEN salary >= 5000 THEN salary * 0.9 WHEN salary >= 2000 AND salary < 4600 THEN salary * 1.15 ELSE salary END;
三、case when在where語(yǔ)句中的用法
SELECT * FROM TB_Test WHERE stateid IN ( 10, 20 ) AND ( CASE WHEN stateid = 20 AND userid <> 2 THEN 0 ELSE 1 END ) = 1
四、case when在group by 語(yǔ)句中的用法(不常用)
SELECT CASE WHEN salary <= 500 THEN '1' WHEN salary > 500 AND salary <= 600 THEN '2' WHEN salary > 600 AND salary <= 800 THEN '3' ELSE NULL END salary_class, -- 別名命名 COUNT(*) FROM Table_A GROUP BY CASE WHEN salary <= 500 THEN '1' WHEN salary > 500 AND salary <= 600 THEN '2' WHEN salary > 600 AND salary <= 800 THEN '3' ELSE NULL END;
到此這篇關(guān)于Oracle中case when函數(shù)用法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
oracle多表簡(jiǎn)單查詢(xún)實(shí)例代碼
當(dāng)查詢(xún)的數(shù)據(jù)并不是來(lái)源一個(gè)表時(shí),需要使用多表鏈接操作完成查詢(xún),下面這篇文章主要給大家介紹了關(guān)于oracle多表簡(jiǎn)單查詢(xún)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Oracle數(shù)據(jù)庫(kù)并行查詢(xún)出錯(cuò)的解決方法
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)并行查詢(xún)出錯(cuò)的解決方法,需要的朋友可以參考下2014-07-07Oracle中trunc()函數(shù)實(shí)例詳解
trunc函數(shù)用法用于截取時(shí)間或者數(shù)值,返回指定的值,下面這篇文章主要給大家介紹了關(guān)于Oracle中trunc()函數(shù)詳解的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Oracle9i數(shù)據(jù)庫(kù)異常關(guān)閉后的啟動(dòng)
Oracle9i數(shù)據(jù)庫(kù)異常關(guān)閉后的啟動(dòng)...2007-03-03win10 oracle11g安裝報(bào)錯(cuò)問(wèn)題集合 附解決方法
這篇文章主要為大家總結(jié)了win10 oracle11g安裝報(bào)錯(cuò)問(wèn)題的產(chǎn)生原因,和oracle安裝報(bào)錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(二)
ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(二)...2007-03-03