在Oracle/ PLSQL的,DECODE函数有一个IF - THEN - ELSE语句的功能。
DECODE函数的语法是:
decode( expression , search , result [, search , result]... [, default] )
expression值进行比较。
search 是对表达相比的价值。
result是返回的值,如果表达式等于搜索。
default 是可选的。如果没有找到匹配,解码将返回默认值。如果省略了默认,然后解码语句将返回null(如果没有找到匹配)。
撤消修改
Applies To:
Oracle 9i, Oracle 10g, Oracle 11g
实例
SELECT supplier_name,
decode(supplier_id, 10000, 'IBM',
10001, 'Microsoft',
10002, 'Hewlett Packard',
'Gateway') result
FROM suppliers;
上述解码的语句与以下的IF - THEN- ELSE语句是等效的:
IF supplier_id = 10000 THEN
result := 'IBM';
ELSIF supplier_id = 10001 THEN
result := 'Microsoft';
ELSIF supplier_id = 10002 THEN
result := 'Hewlett Packard';
ELSE
result := 'Gateway';
END IF;
DECODE函数将一个接一个比较每个supplier_id价值。