在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价值。