DECODE 函数
可以使用 DECODE 函数来将具有一个值的表达式转换为另一个值。DECODE 函数具有以
下格式:
DECODE(test, a, a_value, b, b_value, ..., n, n_value, exp_m )
在通常情况下,当 a 等于 test 时 DECODE 函数返回 a_value,当 b 等于 test 时,返回 b_value,
当 n 等于 test 时返回 n_value 。
如果有若干表达式与 test 匹配,那么 DECODE 返回找到的第一个表达式的 n_value。如果
没有表达式与 test 匹配,那么 DECODE 返回 exp_m;;如果没有表达式与 test 匹配并且不存
在 exp_m,那么 DECODE 返回 NULL。
限制: DECODE 函数不支持类型为 TEXT 或 BYTE 的参数。
假设包括 emp_id 和 evaluation 列的 employee 表存在。此外还假设对 employee 表执行下列
查询则返回以下所示的行。
图: 查询
SELECT emp_id, evaluation FROM employee;
图: 查询结果
在某些情况下,您可能想要转换一组值。例如:假设您想要将前一示例中 evaluation 列的描
述值转换为相应的数字值。下列查询显示如何使用DECODE 函数来针对 employee 表中的每
一行将 evaluation 列中的值转换为数字值。
图: 查询
图: 查询结果
可为 DECODE 函数的参数指定任何数据类型,只要这些参数满足以下需求:
参数 test 、a 、b 、... 、n 都具有相同的数据类型或求值为公共兼容的数据类型。
参数 a_value 、b_value 、... 、n_value 都具有相同的数据类型或求值为公共兼容的数据类型。