Oracle函数之DECODE函数

Oracle函数之DECODE函数1.语法2.用途DECODE函数将expr与search的值逐个比较。如果expr与search值相等,Oracle返回search相应的result。如果expr与search值都不匹配,Oracle返回default,如果没有函数中没有赋值default,Oracle返回null。这些参数可以是任何数字类型(NUMBER,BINARY_F…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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 inventories
  WHERE product_id < 1775
  ORDER BY product_id, "Location";
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160108.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 求余运算符_取余运算规则

    求余运算符_取余运算规则笔记摘自《极客学院》求余运算(a%b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数)。注意:求余运算(%)在其他语言也叫取模运算。然而严格说来,我们看该运算符对负数的操作结果,&

    2022年8月1日
    3
  • 常见的杀毒软件_杀毒软件什么最好

    常见的杀毒软件_杀毒软件什么最好如果没有360,杀毒软件哪家强?

    2022年8月20日
    3
  • 关于linux文件系统软连接_centos7删除目录命令

    关于linux文件系统软连接_centos7删除目录命令前言经常使用centos系统的同学都知道,在全局安装命令指令时,即使是执行了npminstall-g但是安装之后的命令仍然说找不到那么我们改如何操作呢?软连接简介centos下的ln命令就相当于window下的建立快捷方式,链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。软链接文件只是其源文件的一个标记,当删除了源…

    2022年9月1日
    1
  • 内存失败

    内存失败

    2021年8月30日
    54
  • IoC控制反转「建议收藏」

    IoC控制反转「建议收藏」IoC控制反转IoC控制反转(InversionofControl,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(DependencyInjection,简称DI),还有一种方式叫“依赖查找”(DependencyLookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。DIDI—DependencyInjection,即“依赖注入”:

    2022年6月15日
    24
  • 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

    五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。本教程将分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。第二步:配置Windows上JDK的变量环…

    2022年7月23日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号