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分组,最终达到如上图聚合的效果)

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

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

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


相关推荐

  • sched.h (版本4.16.7全部内容)

    sched.h (版本4.16.7全部内容)/*SPDX-License-Identifier:GPL-2.0*/#ifndef_LINUX_SCHED_H#define_LINUX_SCHED_H/**Define’structtask_struct’andprovidethemainscheduler*APIs(schedule(),wakeupvariants,etc.)*/…

    2022年10月22日
    0
  • pki的应用包括哪些技术_新技术应用情况

    pki的应用包括哪些技术_新技术应用情况一、概述公钥基础设施(PublicKeyInfrastructure,简称PKI)是目前网络安全建设的基础与核心,是电子商务安全实施的基本保障,因此,对PKI技术的研究和开发成为目前信息安全领域的热点。本文对PKI技术进行了全面的分析和总结,其中包括PKI组成、PKI应用等,并对CA的开发做了简要分析。本文对PKI,特别是CA的开发、应用和普及具有一定的促进作用。二、PKI技术的信任服务…

    2022年10月26日
    0
  • Batchnorm原理详解「建议收藏」

    Batchnorm原理详解「建议收藏」Batchnorm原理详解前言:Batchnorm是深度网络中经常用到的加速神经网络训练,加速收敛速度及稳定性的算法,可以说是目前深度网络必不可少的一部分。本文旨在用通俗易懂的语言,对深度学习的常用算法–batchnorm的原理及其代码实现做一个详细的解读。本文主要包括以下几个部分。Batchnorm主要解决的问题 Batchnorm原理解读 Batchnorm的优点 Batc…

    2022年4月29日
    39
  • vue-响应式原理[通俗易懂]

    vue-响应式原理[通俗易懂]1.vue响应式原理核心使用的API是:Object.defineProperty(obj,key,val)会对props和data、computed中的数组和对象都进行一个遍历,这个过程其实就是赋予数据set和get方法,让数据的访问和赋值有一些内部处理2.由于vue的核心使用的是Object.defineProperty,但是IE8及其以下版本是不兼容这个API的,并且也没有提供相关的API支持这个功能,因此这也是为什么vue项目不兼容的根本原因3.在对数组和对象进行操作的过程中,会对对象进行一个

    2022年6月10日
    25
  • redflag linux7.0 grub引导终极原创

    redflag linux7.0 grub引导终极原创很多同志在安装redflag时,安装引导时选了将引导安装在根分区而不是MBR分区,所以开机时还是只能进入XP系统而不能进入Linux系统其实要解决这个问题,引导进入redflag很简单,只要在xp下的C盘中找到menu.ls这个文件,用记事本找开,在其中添加title红旗Linux桌面7root(hd0,8)kernel/boot/vmlinuz-2.6….

    2022年8月20日
    4
  • qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    2021年12月5日
    36

发表回复

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

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