網站首頁 編程語言 正文
一、case when 的基本用法見:
PL/SQL 使用控制流程
二、case when在select語句中的用法
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 ELSE NULL END) 男生數,
COUNT (CASE WHEN sex = 2 THEN 1 ELSE NULL END) 女生數
FROM students
GROUP BY grade;
1、在Case函數中,可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等。
Case函數不同于DECODE函數。在Case函數中,可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等等。比如說使用IN,EXISTS,可以進行子查詢,從而 實現更多的功能。
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、根據條件有選擇的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;
原文鏈接:https://www.cnblogs.com/springsnow/p/9394901.html
相關推薦
- 2023-07-03 python?遍歷可迭代對象的實現方法_python
- 2022-05-17 ubuntu如何給 GoLand 設置桌面快捷圖標
- 2024-03-24 golang log包自定義輸出日志格式與寫入到文件
- 2022-06-27 Python實現歷史記錄功能(實際案例)_python
- 2022-03-15 巧用Redis實現分布式鎖詳細介紹_Redis
- 2022-03-17 .net?程序通過?crontab?無法啟動手動執行腳本啟動的方法_實用技巧
- 2022-04-05 Pandas的DataFrame如何做交集,并集,差集與對稱差集_python
- 2022-08-02 python?GUI編程實現掃雷游戲_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支