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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nactive15激活码(破解版激活)

    nactive15激活码(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 解决virtualbox虚拟机桥接模式下不能上网

    解决virtualbox虚拟机桥接模式下不能上网virtualbox虚拟机桥接模式下不能上网欢迎使用Markdown编辑器欢迎使用Markdown编辑器https://blog.csdn.net/wild46cat/article/details/53100931跟着这个链接操作在主机上设置好网络然后在虚拟机上设置,也是跟着其他作者教程做的,一时找不到那个网页了vim/etc/resolv.confvim/etc/network/interfaces/…

  • java dategramsocket_Java使用DatagramSocket

    java dategramsocket_Java使用DatagramSocketJava使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。先看一下DatagramSocket的构造器。DatagramSocket():…

  • android activity的跳转动画,实现activity跳转动画的若干种方式

    android activity的跳转动画,实现activity跳转动画的若干种方式第一种:(使用overridePendingTransition方法实现Activity跳转动画)在Activity中代码如下/***点击按钮实现跳转逻辑*/button1.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){/***在调用了startActivity方法之后…

  • 列车调度问题PTA

    列车调度问题PTA7-20列车调度(25分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格…

  • django 自定义user_3d模型下载源码

    django 自定义user_3d模型下载源码前言Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了。它的完整的路径是在django.contrib.auth.models.User。User模型源码分析

发表回复

您的电子邮箱地址不会被公开。

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