Oracle decode函数

Oracle decode函数一两种语法格式1decode(expression,value,result1,result2)如果expression=value,则输出result1,否则输出result2例子:(1+2=3,输出a)(1+2≠4,输出b)2decode(expre…

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

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

一 两种语法格式

1 decode(expression,value,result1,result2)

   如果expression=value,则输出result1,否则输出result2

   例子:

            Oracle decode函数

           (1+2=3,输出a)

             Oracle decode函数

            (1+2≠4,输出b)

2 decode(expression,value1,result1,value2,result2,value3,result3……,default)

   如果expression=value1,则输出result1,expression=value2,输出reslut2,expression=value3,输出result3,

   若expression不等于所列出的所有value,则输出为default

  例子:

            Oracle decode函数

            (score=100,输出’NO.1’,score=’90’,输出‘NO.2’,score=’70’,输出‘NO.3’,其他值输出’Other’)

二 应用

1 使用decode函数分段

   将成绩表中分数大于90分的分为优秀,80~90分为良好,70~80分为中等,60~70分为及格,60分以下为不及格。

           Oracle decode函数

          (sign()函数的作用是,判断参数的值大于0则返回1,等于0则返回0,小于0则返回-1;

             如图,当socre大于或等于90时,socre-90>=0,sign()函数返回1或0,则输出‘优秀’,

             在score-90<0的情况下,再判断socre-80,socre-80>=0,sign()函数返回1或0,则输出‘良好’,

             以此类推,用decode()的嵌套配合sign()函数来实现对分数的分段以及相应的输出,

             最后60分以下的就default为‘不及格’就可以了,可以看到我们的Tony老师的分数就不及格了)

2 使用decode函数对表做行列转换

             Oracle decode函数

如图所示,有一张三个科目的成绩表,各科目名称和相应的分数呈现在行中,

现想将各科目名称转换为列名,每列的内容为对应科目的分数。

             Oracle decode函数

             (如图,先用decode函数判断subject为Chinese时,输出score,不为Chinese时,输出为NULL,

                因为共有三个科目,所以输出其中一个科目的分数时,其他科目的分数为NULL,这里只需要

                用sum()函数来实现聚合的作用,将空值去除掉就可以了)

              Oracle decode函数

            (sum()函数分别将name为John的每个列的值相加,如Chinese列,80+NULL+NULL=80,

              再将name为Will的每个列的值相加,然后group by将name分组,最终达到如上图聚合的效果)

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

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

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

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

(0)


相关推荐

  • php://input allow_url_include,php allow_url_include的应用和解释_PHP教程

    php://input allow_url_include,php allow_url_include的应用和解释_PHP教程因为这个原因,许多安全研究人员建议在php.ini配置中禁用指向allow_url_fopen。不幸的是,许多推荐这种方法的人,并没有意识到,这样会破坏很多的应用并且并不能保证100%的解决remoteURLincludes以及他带来的不安全性。通常,用户要求在他们使用其他的文件系统函数的时候,php允许禁止URL包含和请求声明支持。因为这个原因,计划在PHP6中提供allow_url_inc…

  • Kinect获取深度图和深度数据

    Kinect获取深度图和深度数据做关于深度信息处理的,正好实验室配备了kinect2代,就想着先用kinect获取深度信息来处理,之后换其他设备只要有深度信息就直接往后推进就行,不过网上教程虽然多,但是第一次总会栽进坑中,记录一波,下回重来的时候长个教训。配置,参考https://blog.csdn.net/qq_37059483/article/details/77855398#commentsedit因为现在很多版本…

  • SPI协议简单介绍

    SPI协议简单介绍导言SPI是串行扩展总线。串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时系统的更改和扩充极为容易。常用的串行扩展总线有:I2C(InterICBus)总线、单总线(1-WIREBUS)、SPI(SerialPeripheralInterface)总线及Microwire/PLUS等。一、SPI协议SPI总线是微控制器四线的外部总线。SPI没有明文标准,是一种事实总线,对通信操作的实现由芯片厂商和驱动开发者通过datasheet和applicat..

    2022年10月15日
  • IT十大名言 |IT历史上被引述最多的10句名人名言

    IT十大名言 |IT历史上被引述最多的10句名人名言IT十大名言|IT历史上被引述最多的10句名人名言1)1899″Everythingthatcanbeinventedhasalreadybeeninvented.”—–CharlesH.Duell,directoroftheU.S.PatentOffice2)1943″Ithinkthereisaworldmarketformay

    2022年10月21日
  • 用Pycharm 直接下载Pyinstaller,以及使用问题解决

    用Pycharm 直接下载Pyinstaller,以及使用问题解决作为一个学语言学着玩的人,肯定很想把自己的学py文件打包发给别人,Pyinstaller包满足你。因为我一般下载包都是通过Pycharm下载的,有两个方法:一:在Pycharm中你输入:importPyinstaller#会报错只需要按住alt+回车下面就会出现是否安转此包,再回车一下等待就会自动安转完成;二:在Pycharm左上角的File->Setti…

  • (超详细)Eclipse使用教程——使用Eclipse创建第一个HelloWorld!

    (超详细)Eclipse使用教程——使用Eclipse创建第一个HelloWorld!超详细的Eclipse使用教程——使用Eclipse创建第一个HelloWorld!,手把手教学啊。

发表回复

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

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