oracle语句case when用法

Oracle中的CASE WHEN语句用于根据条件执行不同的操作,格式为:CASE 表达式 WHEN 值 THEN 结果 WHEN 值 THEN 结果 … ELSE 默认结果 END。

Oracle的CASE WHEN语句用于根据条件对查询结果进行条件判断和处理,它可以根据不同的条件返回不同的值,从而实现灵活的数据转换和处理。

基本语法

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END;

condition1, condition2, ...是判断条件,可以是任何比较表达式或逻辑表达式;result1, result2, ...是对应条件成立时返回的结果。

oracle语句case when用法

使用示例

假设有一个名为"employees"的表,包含以下字段:id(员工ID)、name(员工姓名)、salary(员工薪水),现在需要根据员工的薪水等级来显示对应的工资级别,可以使用CASE WHEN语句实现如下:

SELECT id, name, salary,
    CASE
        WHEN salary < 5000 THEN '低级'
        WHEN salary >= 5000 AND salary < 10000 THEN '中级'
        WHEN salary >= 10000 THEN '高级'
        ELSE '未知'
    END AS level
FROM employees;

上述查询会根据员工的薪水范围将工资级别分为"低级"、"中级"和"高级"三个等级,并将结果作为新的列"level"返回。

相关问题与解答

问题1:CASE WHEN语句中可以嵌套多个条件吗?如果可以,如何实现?

oracle语句case when用法

解答:是的,CASE WHEN语句中可以嵌套多个条件,可以使用逗号分隔每个条件,并使用THEN子句指定每个条件成立时返回的结果。

SELECT id, name, salary,
    CASE
        WHEN salary < 3000 THEN '低级'
        WHEN salary >= 3000 AND salary < 6000 THEN '中级'
        WHEN salary >= 6000 AND salary < 10000 THEN '高级'
        ELSE '未知'
    END AS level
FROM employees;

问题2:CASE WHEN语句中的ELSE子句是可选的吗?如果不填写会有什么影响?

解答:是的,CASE WHEN语句中的ELSE子句是可选的,如果不填写ELSE子句,当所有条件都不满足时,将返回NULL作为结果,如果希望在没有匹配的条件时返回一个默认值,可以在ELSE子句中指定该默认值。

oracle语句case when用法

SELECT id, name, salary,
    CASE
        WHEN salary < 3000 THEN '低级'
        WHEN salary >= 3000 AND salary < 6000 THEN '中级'
        WHEN salary >= 6000 AND salary < 10000 THEN '高级'
        ELSE '其他' 默认值
    END AS level
FROM employees;

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/641503.html

(0)
未希的头像未希新媒体运营
上一篇 2024-05-21 11:31
下一篇 2024-05-21 11:34

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入