1.语法

2.用途

DECODE 函数将 expr 与 search 的值逐个比较。如果 expr 与 search 值相等,Oracle 返回 search 相应的 result。如果 expr 与 search 值都不匹配,Oracle 返回 default,如果没有函数中没有赋值 default,Oracle 返回 null。

这些参数可以是任何数字类型(NUMBER, BINARY_FLOAT, 或者 BINARY_DOUBLE)或者字符类型。

  • 如果 expr 和 search 是字符数据,返回值是 VARCHAR2 类型
  • 如果 search-result 对是数字类型,然后 Oracle 比较所有的 search-result 和 expr,来确定数值优先级最高的参数,隐式转换其他的参数为其数据类型,并且返回值也是此数据类型。

search, result, 和 default 值可以是表达式。Oracle数据库使用短路求值(short-circuit evaluation)。数据库在每个 search 表达式与 expr 对比之前进行求值,而不是先与 expr 比较再求 search 表达式的值。因此,如果之前的 search 表达式的值与 expr 相等,Oracle不会计算后面的 search 表达式。

Oracle在比较之前自动转换 expr 和每个 search 值为第一个 search 值的数据类型。Oracle自动转换返回值数据类型为第一个 search 值的数据类型。如果第一个 result 是字符数据类型或者是null,Oracle转换返回值类型为VARCHAR2。

在DECODE函数中,Oracle认为两个null是相等的。如果 expr 是null,第一个 search 也是null,Oracle会返回第一个 search 的 result。

DECODE函数的参数(包括 expr, searches, results, 和 default)最多为255个。

例子

如果 warehouse_id 是1,函数返回 ‘Southlake’,如果 warehouse_id 是2,返回 ‘San Francisco’ 等等。如果 warehouse_id 不是 1, 2, 3, 或者 4, 函数返回 ‘Non domestic’。

SELECT product_id,DECODE (warehouse_id, 1, 'Southlake', 2, 'San Francisco', 3, 'New Jersey', 4, 'Seattle','Non domestic') "Location" FROM inventoriesWHERE product_id < 1775ORDER BY product_id, "Location";

Oracle函数之DECODE函数相关推荐

  1. ORACLE的sign函数和DECODE函数

    比较大小函数 sign 函数语法: sign(n) 函数说明: 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0 示例: 一.select sign( 100 ),sign(- 100 ), ...

  2. 转载-Oracle ORACLE的sign函数和DECODE函数

    原文地址:http://www.cnblogs.com/BetterWF/archive/2012/06/12/2545829.html 转载以备用 比较大小函数 sign 函数语法: sign(n) ...

  3. oracle nvl函数3个参数,oracle中的函数介绍(一):nvl函数、decode函数、case when函数、sum函数...

    最近做项目接触到的oracle数据库比较多,经常用到里面的一些函数,以前的博客中也介绍过行转列和列转行,这次再简单给大家介绍几个: nvl() NVL(a,b)就是判断a是否是NULL,如果不是返回a ...

  4. sign函数的功能 oracle,Oracle中sign函数和decode函数的使用

    1.比较大小函数SIGN sign(x)或者Sign(x)叫做符号函数,其功能是取某个数的符号(正或负): 当x>0,sign(x)=1; 当x=0,sign(x)=0; 当x<0, si ...

  5. oracle中decode函数详细解释,oracle中的decode函数

    decode函数能够实现逻辑的if--else选择判断,但是只能进行等值判断,就像switch--case. 基本语法格式如下:DECODE(col/expression , search1 , re ...

  6. oracle最强大函数之一decode函数的使用

    decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 TH ...

  7. decode函数换成mysql的函数_Oracle—decode函数行转列

    文章说明:根据成绩表,对每个学生的成绩数据进项行转列操作,最后每行显示每个学生的各科成绩. 以下是行转列的各个步骤操作. 1.创建学生信息,课程,成绩三张表 CREATE TABLE TB_STUDE ...

  8. mysql中sign函数_Oracle中sign函数和decode函数的使用

    在逻辑编程中,经常用到If ndash; Then ndash;Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法 1.比较大小函数SIGN sign(x)或者Si ...

  9. oracle乱码函数,jfinal oracle操作时decode函数填值乱码 求助什么原因????

    ![输入图片说明](https://git.oschina.net/uploads/images/2017/0527/151633_3e7d8cc4_403754.png "在这里输入图片标 ...

最新文章

  1. 需求用例分析之六:业务用例之科伯恩系
  2. android前台进程视频教程,Android Twilio视频通话,唤醒应用程序并进入前台
  3. C语言 用链表对学号进行排序,求解C语言中建立一个对链表按照学号进行排序的问题...
  4. tf:'hello tensorflow'
  5. Oracle FGA审计的使用
  6. python 类属性 对象属性_python 类属性、对象属性
  7. APP性能测试之monkey
  8. 用友通总账问题维护精粹
  9. 简单图像灰度化处理python代码
  10. 淘思精灵-网赚菜鸟的福音
  11. 大连雅思培训百家国际雅思考试词汇量要求与记忆方法是什么
  12. js获取手机型号和系统
  13. MySQL 递归 sql语句 WITH表达式实现
  14. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667K
  15. 从零开始学R(四)——常用命令:帮助,文件导入与导出与基本操作
  16. 小程序发布测试版本步骤
  17. 职业科普丨PMP是什么呢?
  18. linux redis密码修改,Linux redis 安装并且修改密码
  19. 高通平台开发系列讲解(AI篇)如何让yolov5运行在SNPE
  20. 洛谷P1478 陶陶摘苹果(升级版)

热门文章

  1. 数据丢失!手机数据覆盖是否还能找的回来
  2. Layui编辑页面的数据回显
  3. 教你看懂存储卡的速度,U3 U1 ⑩ ④ V30 V60 V90 A1 A2
  4. 使用LaTeX制作海报
  5. Complement Pathway
  6. 二级Python综合应用(5)《傲慢与偏见》字符统计
  7. MySQL笔记--MySQL排序查询(6)
  8. Android中WebView与JS的交互
  9. 4G LTE 频段列表
  10. “5步”做好研发效能度量,打造研发管理闭环