oracle最强大函数之一decode函数的使用[通俗易懂]

oracle最强大函数之一decode函数的使用[通俗易懂]decode的几种用法1:使用decode判断字符串是否一样DECODE(value,if1,then1,if2,then2,if3,then3,…,else)含义为IF条件=值1THEN    RETURN(value1)ELSIF条件=值2THEN    RETURN(value2)    ……ELSIF条件=值nTHEN  

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

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

1:使用decode判断字符串是否一样
DECODE(value,if1,then1,if2,then2,if3,then3,…,else)

含义为

IF 条件=值1 THEN

    RETURN(value 1)

ELSIF 条件=值2 THEN

    RETURN(value 2)

    ……

ELSIF 条件=值n THEN

    RETURN(value 3)

ELSE

    RETURN(default)

END IF

sql测试

select empno,decode(empno,7369,’smith’,7499,’allen’,7521,’ward’,7566,’jones’,’unknow’) as name from emp where rownum<=10

输出结果

7369
smith

7499
allen

7521
ward

7566
jones

7654
unknow

7698
unknow

7782
unknow

7788
unknow

7839
unknow

7844
unknow


2:使用decode比较大小
select decode(sign(var1-var2),-1,var 1,var2) from dual

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

sql测试

select decode(sign(100-90),-1,100,90) from dual

输出结果

90

100-90=10>0 则会返回1,所以decode函数最终取值为90

反正

select decode(sign(100-90),1,100,90) from dual

输出结果

100

100-90=10>0返回1,判断结果为1,返回第一个变量100,最终输出结果为100


3:使用decode函数分段
工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为低薪

sql测试

SELECT 

    ename,sal,

    DECODE(SIGN(sal – 5000),

            1,

            ‘high sal’,

            0,

            ‘high sal’,

            – 1,

            DECODE(SIGN(sal – 3000),

                    1,

                    ‘mid sal’,

                    0,

                    ‘mid sal’,

                    – 1,

                    DECODE(SIGN(sal – 1000),

                            1,

                            ‘low sal’,

                            0,

                            ‘low sal’,

                            – 1,

                            ‘low sal’)))

FROM

    emp

输出结果

SMITH  
800  
low sal

ALLEN
1600
low sal

WARD
1250
low sal

JONES
2975
low sal

MARTIN
1250
low sal

BLAKE  
2850
low sal

CLARK
2450
low sal

SCOTT
3000
mid sal

KING
 5000
high sal

TURNER
1500
low sal

ADAMS
1100
low sal

JAMES
950
        low sal

FORD
3000
mid sal

MILLER
1300
low sal


4:利用decode实现表或者试图的行列转换
sql测试

SELECT 

       SUM(DECODE(ENAME,’SMITH’,SAL,0))  SMITH,

       SUM(DECODE(ENAME,’ALLEN’,SAL,0))  ALLEN,

       SUM(DECODE(ENAME,’WARD’,SAL,0))   WARD,

       SUM(DECODE(ENAME,’JONES’,SAL,0))  JONES,

       SUM(DECODE(ENAME,’MARTIN’,SAL,0)) MARTIN FROM EMP

输出结果如下

SMITH  ALLEN  WARD   JONES  MARTIN

  800
 1600
  1250
      2975       1250


5:使用decode函数来使用表达式来搜索字符串
decode (expression, search_1, result_1, search_2, result_2, …., search_n, result_n, default)

decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。

sql测试

SELECT 

    ENAME,

    SAL,

    DECODE(INSTR(ENAME, ‘S’),

            0,

            ‘不含有s’,

            ‘含有s’) AS INFO

FROM

    EMP

输出结果

SMITH
800
          含有s

ALLEN
1600
  不含有s

WARD
1250
  不含有s

JONES
2975
   含有s

MARTIN
1250
   不含有s

BLAKE
2850
   不含有s

CLARK
2450
   不含有s

SCOTT
3000
  含有s

KING
5000
  不含有s

TURNER
1500
  不含有s

ADAMS
1100
  含有s

JAMES
950
           含有s

FORD
3000
  不含有s

MILLER
1300
  不含有s

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

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

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


相关推荐

  • db4o发布7.2,出现.NET 3.5版本,支持LINQ「建议收藏」

    db4o发布7.2,出现.NET 3.5版本,支持LINQ「建议收藏」db4o发布7.2,出现.NET3.5版本,支持LINQDb4Object刚刚发布了db4o的7.2beta,除了以前支持如下的平台:.NET1.1,.NET2.0,Mono外,现在还支持.NET3.5了。当然支持.NET3.5,最主要的时候要来支持LINQ。关于LINQ,我稍后再讲。现在讲讲7.2中最大的新特性——TransparentActivation(透明…

    2022年7月21日
    14
  • java.lang.Integer

    java.lang.IntegerpublicstaticintbitCount(intarg0)//二进制中出现1的数量publicbytebyteValue()//转化为bytepublicstaticintco

    2022年7月1日
    24
  • unity3d官网下载安装教程_3D怎么安装

    unity3d官网下载安装教程_3D怎么安装入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、官网下载链接https://unity3d.com/cn/但是可能是因为我没翻墙,所以我根本没办法进入这个网页二、Unity3D中国官网下载但是天无绝人之路嘛可不是,让我找到了这么个大宝贝Unity所有版本下载|Unity中国官网点进链接后往下翻然后根据提示进行一些注册和登录,就可以选择你想要的版本进行下载啦三、Unity3D安装教程这里我选择.

    2026年1月22日
    6
  • Spring AOP中动态代理的两种实现方式及其过程_ajax的原理和作用

    Spring AOP中动态代理的两种实现方式及其过程_ajax的原理和作用AOP思想:基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强!

    2022年8月11日
    7
  • java工程师笔试面试题[通俗易懂]

    java工程师笔试面试题[通俗易懂]1.J2EE是什么?它包括哪些技术?解答:从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。主要包括以下这些技术:1)Ser

    2022年7月11日
    16
  • Eclipse代码的自动补全

    Eclipse代码的自动补全打开eclipse依次点击Window–>Perferences–>Java–>Editor–>ContentAssist在【AutoactivationtriggersforJava:】选项后的文本框中会看到一个”.”。eclipse默认只有在你输入”.”之后才会有代码提示和自动补全。我们需要在”.”之后加上”qwertyuiopasdfghjklzxcvbnm”,其实就是从左至右,从上至下顺序按你的键盘。…

    2022年5月31日
    43

发表回复

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

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