DECODE¶
说明¶
DECODE函数相当于一条件语句(IF)。它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。如果未能与任何一个实参序偶匹配成功,则函数返回默认值。
返回值¶
返回匹配的 result 值,都不匹配是返回 default 值。
注解
- 若
expr与某个search值相等,则 DECODE 函数返回这个search之后首个result值。 若没有找到相等的search值,则 DECODE 函数返回default值。 这与C语言中的 switch 语句有些类似。 - 对
expr和search的类型限制较为宽松,可不同类型进行比较,并且可以比较 NULL 值。 - 如果所有 result 表达式类型属于同一类,则选择精度高的类型为整个 result 的类型, 否则会以第一个 result 表达式类型作为整个 result 的类型。
示例¶
示例1: 使用 DECODE 按条件匹配串
-- 使用 DECODE 按条件匹配串
SELECT DECODE(2, 1, 'a', 2, 'b', 'z');
DECODE(text) |
------------------
b |
总数目:1
示例2: 缺省 default
-- 缺省 default
SELECT DECODE(2, 1, 'a', 2, 'b');
DECODE(text) |
------------------
b |
总数目:1