Oracle CASE WHEN 语句的用法详解
什么是 Oracle CASE WHEN 语句
Oracle CASE WHEN 语句是一种条件表达式,它可以根据指定的条件执行不同的代码块,类似于程序中的 if-else 逻辑判断。
Oracle CASE WHEN 语句的语法
Oracle CASE WHEN 语句的基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN condition3 THEN result3
...
ELSE result
END
其中,CASE 是关键字,后面跟随一个表达式或字段名;WHEN 子句指定条件和对应的结果;ELSE 是可选的,如果所有条件都不匹配,则执行 ELSE 子句中的结果。END 表示 CASE WHEN 结束。
Oracle CASE WHEN 语句的示例1
假设有一个名为 sales 表,其中包含商品名称、销售数量和销售售价等列。现在要统计每种商品的总销售额,并根据总销售额的不同范围分为 A、B、C、D 四个等级。可以使用如下 SQL 语句实现:
SELECT
product_name,
SUM(sales_qty * sales_price) AS total_sales,
CASE
WHEN SUM(sales_qty * sales_price) >= 10000 THEN 'A'
WHEN SUM(sales_qty * sales_price) >= 5000 AND SUM(sales_qty * sales_price) < 10000 THEN 'B'
WHEN SUM(sales_qty * sales_price) >= 2000 AND SUM(sales_qty * sales_price) < 5000 THEN 'C'
ELSE 'D'
END sales_level
FROM sales
GROUP BY product_name
在上面的 SQL 语句中,通过 SUM 函数计算了每种商品的总销售额,并使用 CASE WHEN 语句根据不同的范围分为 A、B、C、D 四个等级。
Oracle CASE WHEN 语句的示例2
假设有一个名为 employee 表,其中包含员工编号、姓名、性别和工作年限等列。现在要查询所有员工的信息,并根据工作年限的不同范围分为 A、B、C、D 四个等级。如果工作年限不满足任何一个范围,则显示为“未知”。可以使用如下 SQL 语句实现:
SELECT
employee_id,
employee_name,
gender,
years_of_service,
CASE
WHEN years_of_service >= 10 THEN 'A'
WHEN years_of_service >= 5 AND years_of_service < 10 THEN 'B'
WHEN years_of_service >= 2 AND years_of_service < 5 THEN 'C'
ELSE '未知'
END work_level
FROM employee
在上面的 SQL 语句中,使用 CASE WHEN 语句根据工作年限的不同范围分为 A、B、C、D 四个等级,并使用 ELSE 子句将不满足任何一个范围的记录显示为“未知”。
结论
Oracle CASE WHEN 语句是一个强大的条件表达式,可以根据不同的条件执行不同的代码块。它的语法简单明了,使用方便,能够满足复杂的逻辑判断需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:oracle case when 语句的用法详解 - Python技术站