Oracle中case?when函數(shù)的用法
更新時間:2022年05月05日 17:20:19 作者:springsnow
這篇文章介紹了Oracle中case?when函數(shù)的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、case when 的基本用法見:
二、case when在select語句中的用法
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等等。比如說使用IN,EXISTS,可以進(jì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,但是這個時候要注意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語句中的用法
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 語句中的用法(不常用)
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ù)用法的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Oracle中trunc()函數(shù)實(shí)例詳解
trunc函數(shù)用法用于截取時間或者數(shù)值,返回指定的值,下面這篇文章主要給大家介紹了關(guān)于Oracle中trunc()函數(shù)詳解的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
Oracle9i數(shù)據(jù)庫異常關(guān)閉后的啟動
Oracle9i數(shù)據(jù)庫異常關(guān)閉后的啟動...2007-03-03

