在 MySQL 中,可以使用 CASE 表达式实现类似 Oracle DECODE 函数的功能:确定条件和返回值;使用 CASE 表达式,列出条件和返回值;添加 ELSE 语句指定默认值。

Oracle DECODE 函数在 MySQL 中的用法
Oracle 的 DECODE 函数是一个案例语句,用于在给定的条件下返回不同的值。在 MySQL 中,没有直接等同于 DECODE 函数的函数。然而,可以使用 CASE 表达式来实现类似的功能。
语法
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END用法
- 确定条件和返回值:首先,确定用于比较的条件以及满足每个条件时要返回的值。
- 使用 CASE 表达式:使用 CASE 关键字作为表达式的开头,然后列出每个条件及其相应的返回值。
- 添加 ELSE 语句:对于未满足任何条件的情况,添加一个 ELSE 语句以指定默认值。
示例
以下示例演示了如何在 MySQL 中使用 CASE 表达式实现 DECODE 函数:
SELECT
CASE
WHEN age < 18 THEN "Minor"
WHEN age >= 18 AND age < 65 THEN "Adult"
ELSE "Senior"
END AS age_category
FROM people;结果:
| age_category |
|---|
| Minor |
| Adult |
| Senior |
注意:
MySQL 中的 CASE 表达式支持使用多个 WHEN 子句以及 ELSE 子句。因此,您可以根据需要添加额外的条件。










