oracle 中decode函数[通俗易懂]

oracle 中decode函数[通俗易懂]Oracle中decode函数用法含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)该函数的含义如下:IF条件=值1THEN    RETURN(翻译值1)ELSIF条件=值2THEN    RETURN(翻译值2)    …ELSIF条件=值nTHEN    RETURN(翻译值n)ELSE    RETURN(缺省…

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

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

Oracle 中 decode 函数用法

含义解释:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    …
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

decode(字段或字段的运算,值1,值2,值3)

   这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3

当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

使用方法:

1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; –取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

2、此函数用在SQL语句中,功能介绍如下:

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。

Decode函数在实际开发中非常的有用

结合Lpad函数,如何使主键的值自动加1并在前面补0
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,‘0’) 记录编号 from tetdmis

eg:

select decode(dir,1,0,1) from a1_interval

dir 的值是1变为0,是0则变为1

比如我要查询某班男生和女生的数量分别是多少?

通常我们这么写:

select count(*) from 表 where 性别 = 男;

select count(*) from 表 where 性别 = 女;

要想显示到一起还要union一下,太麻烦了

用decode呢,只需要一句话

select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表

eg:

select sum(decode(siteno,‘LT’,1,0)),sum(decode(siteno,‘SZ’,1,0)) from facd605;

select sum(case siteno when ‘LT’ then 1 else 0 end),sum(case siteno when ‘SZ’ then 1 else 0 end) from facd605;
vinson

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

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

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


相关推荐

  • php 替换某个字符,php如何将指定字符串替换?

    php 替换某个字符,php如何将指定字符串替换?php将指定字符串替换的方法:1、【strtr】为转换指定字符,代码为【stringstrtr(string$str,$replace_pairs)】;2、【str_replace()】函数以其他字符替换字符串中的一些字符。php将指定字符串替换的方法:在PHP中,有两个函数可以实现字符串替换,strtr()和str_repalce()函数。一、首先我们简单了解下strtr()函数的定义…

    2022年5月23日
    27
  • PyCharm配置_pycharm安装配置

    PyCharm配置_pycharm安装配置pycharmpycharm是一个比较好的pythonIDE,可以在MACOS和windows上使用,补全功能强大,而且界面十分友好,特别适合python编程人员使用。pycharmPycharm安装Pycharm配置修改成灰底主题显示行号修改字体大小编程字体我推荐运行调试Pycharm安装pycharm的安装地址:http://www.jetbrains.com/

    2022年8月28日
    0
  • redis的lettuce_redis客户端lettuce

    redis的lettuce_redis客户端lettuce1、Jedis优点:提供了比较全面的Redis操作特性的APIAPI基本与Redis的指令一一对应,使用简单易理解缺点:同步阻塞IO不支持异步线程不安全2、Lettuce优点:线程安全基于Netty框架的事件驱动的通信,可异步调用适用于分布式缓存缺点:API更抽象,学习使用成本高…

    2022年9月3日
    3
  • 暴力激活成功教程密码 – C++ 递归方法实现

    暴力激活成功教程密码 – C++ 递归方法实现问题描述:   暴力激活成功教程密码   假设有一个4位字母密码,每位密码是a~e之间的小写字母   你能否编写一段代码,来暴力激活成功教程该密码?(可重复排序) #include<iostream>#include<string>usingstd::string;usingnamespacestd;voidBreakPassword(s…

    2022年8月22日
    3
  • 解决:无法打开系统服务 提示“一个或多个Activex控件无法显示”

    解决:无法打开系统服务 提示“一个或多个Activex控件无法显示”问题:电脑打开系统的服务时,出现“一个或多个Activex控件无法显示”的提示,开始以为与IE设置有关,试着在Internet选项->安全,勾选了“允许ActiveX控件”,但是依然无效。解答:解决此问题需编辑注册表(开始->运行,在框中输入“regedit”后,回车),有打开的注册表编辑器中,定位到:HKEY_CURRENT_USER/Software/Microsoft\Win

    2022年10月23日
    0
  • 激光三角测距原理概述

    激光三角测距原理概述激光三角测距法作为低成本的激光雷达设计方案,可获得高精度、高性价比的应用效果,并成为室内服务机器人导航的首选方案,本文将对激光雷达核心组件进行介绍并重点阐述基于激光三角测距法的激光雷达原理。激光雷达四大核心组件激光雷达主要由激光器、接收器、信号处理单元和旋转机构这四大核心组件构成。激光器:激光器是激光雷达中的激光发射机构。在工作过程中,它会以脉冲的方式点亮。以思岚科技的RPLID…

    2022年5月5日
    51

发表回复

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

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