Oracle的DECODE函数
1.句法
DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数含义如下:
IF 条件=值1 THEN
RETURN (翻译值1)
ELSIF 条件=值2 THEN
RETURN (翻译值2)
......
ELSIF 条件=值n THEN
RETURN (翻译值n)
ELSE
RETURN (缺省值)
END IF
2. 实例
1)创建业绩表
create table scott.sale(
month char(6),
sell number(10,2)
);
2)插入数据
insert into scott.sale values(01, 1000);
insert into scott.sale values(02, 2000);
insert into scott.sale values(03, 9000);
insert into scott.sale values(04, 7000);
insert into scott.sale values(05, 4000);
insert into scott.sale values(06, 5000);
3)创建评估表
create table scott.archive(
month char(6),
grade char(10)
);
4)根据业绩表向评估表插入数据
--if sell = 900 then
--grade := 'excellent'
--else if sell = 700 then
--grade := 'perfect'
--else if sell = 500 then
--grade := 'good'
--else
--grade := 'normal'
insert into scott.archive
(select month, decode(sell, 9000, 'excellent', 7000, 'perfect', 5000, 'good', normal')
from scott.sale);