【ORCAL】oracle 数据库中case when 语句的用法详解

 

今天向大家介绍oracle数据库中 case when 语句的用法详解,主要包括它的用法详解、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值。

CASE WHEN 表达式有两种形式

复制代码
 1 --简单Case函数  
 2 
 3 CASE sex  
 4 WHEN '1' THEN ''  
 5 WHEN '2' THEN ''  
 6 ELSE '其他' END  
 7 
 8 --Case搜索函数  
 9 
10 CASE
11 WHEN sex = '1' THEN ''  
12 WHEN sex = '2' THEN ''  
13 ELSE '其他' END 
View Code
复制代码

 

CASE WHEN 在语句中不同位置的用法

1.在SELECT后面的用法(目标显示结果中)

SELECT   grade, COUNT (CASE WHEN sex = 1 THEN 1      
/*sex 1为男生,2位女生*/
                       ELSE NULL
                       END) 男生数,
                COUNT (CASE WHEN sex = 2 THEN 1
                       ELSE NULL
                       END) 女生数
    FROM students GROUP BY grade;

注:此语句表示查询学生信息表中各年级的男生和女生数,并按年级分组(数据库中性别是以1和2表示)

2.在WHERE 后 用法(作为条件进行)

复制代码
 1 SELECT T2.*, T1.*
 2    FROM T1, T2
 3   WHERE (CASE WHEN T2.COMPARE_TYPE = 'A' AND
 4                    T1.SOME_TYPE LIKE 'NOTHING%'
 5                 THEN 1
 6               WHEN T2.COMPARE_TYPE != 'A' AND
 7                    T1.SOME_TYPE NOT LIKE 'NOTHING%'
 8                 THEN 1
 9               ELSE 0
10            END) = 1
复制代码

注:

3.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'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
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'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
ELSE NULL END;  
复制代码

 

 

 

posted on   小码果  阅读(4169)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
Live2D
欢迎阅读『【ORCAL】oracle 数据库中case when 语句的用法详解』
点击右上角即可分享
微信分享提示