Oracle兼容-函数-DECODE()函数


1. 语法

  1. DECODE(
  2. expr, /* 字段或表达式 */
  3. search, /* 可能值 */
  4. result /* 返回值 */
  5. [, search, result ]... /* 可选可能值/返回值对[允许多个] */
  6. [, default ] /* 可选无匹配返回值 */
  7. )

2. 定义和用法

顾名思义,DECODE() 函数的作用是根据表达式编码/输出相应的结果,比较exprsearch的结果,如果一致则返回对应的result,如果所有条件都不匹配则返回default,如果default不存在,则返回NULL。

对于expr=search=NULL,的情况与Oracle行为一致,会返回第一个search为NULL的result

注意:可能值与返回值的评估使用短路评估,即:只要存在expr\=search则后续search不会被评估。

3. 示例

  1. greatsql> SELECT DECODE(1, 1, 'one', 2, 'two', 'other');
  2. +----------------------------------------+
  3. | DECODE(1, 1, 'one', 2, 'two', 'other') |
  4. +----------------------------------------+
  5. | one |
  6. +----------------------------------------+
  7. greatsql> SELECT DECODE(NULL, 1, 'one', NULL, 'NULL');
  8. +--------------------------------------+
  9. | DECODE(NULL, 1, 'one', NULL, 'NULL') |
  10. +--------------------------------------+
  11. | NULL |
  12. +--------------------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx