是的,CASE WHEN
可以处理复杂的逻辑判断
SELECT column1, column2, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END AS new_column FROM table_name;
在这个示例中,你可以根据需要添加任意多的 WHEN
子句来表示复杂的逻辑判断。如果没有任何条件满足,将返回 ELSE
子句中指定的结果。如果没有提供 ELSE
子句,并且没有条件满足,则返回 NULL。
以下是一个具体的例子,展示了如何使用 CASE WHEN
处理复杂的逻辑判断:
SELECT employee_id, first_name, last_name, salary, CASE WHEN salary < 50000 THEN 'Low' WHEN salary >= 50000 AND salary < 100000 THEN 'Medium' WHEN salary >= 100000 AND salary < 150000 THEN 'High' ELSE 'Very High' END AS salary_level FROM employees;
在这个查询中,我们根据员工的薪水将其分为不同的等级。这里使用了三个 WHEN
子句来表示复杂的逻辑判断,并使用 ELSE
子句处理其他情况。