语法:
DECODE(expr,{search,result} [,...] [default])
功能:将expr与多个search进行比较,如果expr等于search,则返回对应result;如果没有找到匹配项,则返回default;如果未指定default,则返回空值。可以指定多个search及对应result,用逗号(,)分隔。
入参支持的数据类型是INT、BIGINT、REAL、STRING、NUMBER、DATE、TIMESTAMP、BINARY;返回值是STRING。
示例:
--删除同名表staffS_xian。 DROP TABLE IF EXISTS staffS_xian; --创建表staffS_xian。 CREATE TABLE staffS_xian ( staff_ID NUMBER(6) not null, NAME VARCHAR2(20), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4) ); --向表staffS_xian中加入记录1。 INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID) values (198, '王莹', 'wangying@126.com', '18095605632', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK', 2600.00, 124, 50); --向表staffS_xian中加入记录2。 INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID) values (199, '何开平', 'hekaipng02@126.com', '18095605532', to_date('13-01-2000', 'dd-mm-yyyy'), 'SH_CLERK', 2600.00, 124, 50); --向表staffS_xian中加入记录3。 INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID) values (200, '李瑞', 'lirui03@126.com', '18095565632', to_date('17-09-1987', 'dd-mm-yyyy'), 'AD_ASST', 4400.00, 101, 10); --解码值staff_ID。如果staff_ID为198,则函数返回“A组”;如果staff_ID为199,则返回“B组”。如果staff_ID不是198、199,则函数返回“unknown”。 SELECT staff_ID, DECODE (staff_ID, 198, 'A组', 199, 'B组', 'unknown') ""GROUP"" FROM staffS_xian WHERE staff_ID < 201 ORDER BY staff_ID; STAFF_ID GROUP ---------------------------------------- ------- 198 A组 199 B组 200 unknown 3 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。