CASE WHEN THEN
是 SQL 中用于条件判断的语句,可以用来处理空值(NULL)。在处理空值时,可以使用 IS NULL
或 IS NOT NULL
来检查某个字段是否为空,并根据条件返回不同的值。
CASE WHEN THEN
语句的基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
condition1
, condition2
, ... 是条件表达式。result1
, result2
, ... 是满足条件时返回的结果。ELSE
子句用于处理所有条件都不满足的情况。假设我们有一个表 employees
,其中有一个字段 salary
可能为 NULL。我们希望将空值替换为 0。
SELECT
employee_id,
CASE
WHEN salary IS NULL THEN 0
ELSE salary
END AS adjusted_salary
FROM employees;
在这个例子中,如果 salary
字段为 NULL,则 adjusted_salary
将被设置为 0;否则,adjusted_salary
将保持原值。
IF
语句。CASE WHEN THEN
可以分为两种类型:
CASE WHEN THEN
时,发现结果不符合预期。原因:
解决方法:
假设我们有一个表 orders
,其中有一个字段 status
可能为 NULL。我们希望将空值替换为 'Pending'。
SELECT
order_id,
CASE
WHEN status IS NULL THEN 'Pending'
WHEN status = 'Shipped' THEN 'Delivered'
ELSE status
END AS updated_status
FROM orders;
在这个例子中,如果 status
字段为 NULL,则 updated_status
将被设置为 'Pending';如果 status
为 'Shipped',则 updated_status
将被设置为 'Delivered';否则,updated_status
将保持原值。
通过这种方式,可以有效地处理空值和其他特殊情况,确保数据的完整性和一致性。
领取专属 10元无门槛券
手把手带您无忧上云