oracle忽略除数为0,ora-01476除数为0的解决办法,oracle中decode()的使用

执行报表查询,固定的一个时间点没有数据,应该是有数据的,把前一个时间节点往前调是有的,往后调也有

bebug报错

621e687aea7a8d981ad1e2d5088ed609.png

把sql放到数据库中,发现提示如截图

======================

解决办法,oracle中的decode()

select decode(b,0,0,a/b*100)   as d    from aa;

------------

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

使用方法:

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并在前面补0select 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

-------------------------------------------

pad翻译:填充

lpad函数,在字符串的左侧添加指定字符串,用法:

lpad(String ,截取长度,添加的字符串)。

说是添加字符串也不准确,比较准确的说法是对String进行截取字符串,如果截取长度大于String的长度,则在

String的左侧添加字符串进行填补,如果第三个参数未指定,则用空格进行填补。例如:

select lpad('test',10) from dual;

将返回“    test”

select lpad('test',10,'ee') from dual;

结果将返回eeeeeetest。

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

通常我们这么写:

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

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

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

用decode呢,只需要一句话

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

3,order by对字符列进行特定的排序

大家还可以在Order by中使用Decode。

例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。

select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

select * from zy_brry order by decode(brks, '443', 1 ,'442', 2,  '444',3)

这样的做法有利于自定义排序

54cadf8b902642d233d9b170314de719.png

借鉴路径:https://www.cnblogs.com/langtianya/p/6038800.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java GridBagLayout 简单使用

这里只介绍了很基础布局构建及使用,主要是关于 GridBagLayout. 首先整套流程大概是, 声明一个 GridBagLayout 对象 private GridBagLayout gridBagLayoutFrame new GridBagLayout(); 然后把当前类的容器布局管理器设置为 GridBagLayout this.setLayout(…

Angular之简单的登录注册

使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 localStorage 获取本地存储的值 window.localStorage.getItem(key)-->value (得到的数据是字符串&qu…

微信扫码下载iosAPP

1.首先在应用宝上传你的安卓APP应用,AppStore已经有了APP 2.进入应用宝app应用管理中心,点击“微下载”,然后里面的微下载链接地址就可以用了,可以看到ios可以通过应用宝再跳到AppStore就可以实现下载了转载于:https://www.cnblog…

linux中的加法函数,上下文管理练习(为加法函数计时)

上下文管理(为加法函数计时)为加法函数计时使用装饰器显示该函数的执行时长使用上下文管理显示该函数的执行时长装饰器实现import timeimport datetimefrom functools import wrapsdef logger(fn):wraps(fn) # wraps(fn)(wrapper)def wrapper(*args, **kw):start datetime.dat…

07数组与接口

1、运行TextInherists.java 示例,观察输出,注意总结父类与子类之间构造方法的的调用关系,修改parent构造方法的代码,显式调用grandparent另一个构造函数。 源代码: class GrandParent{ public GrandParent(){ System.o…

windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接

一 安装MongoDB的服务下载Linux系统下的MongoDB安装包上传压缩包到linux服务器中,解压到对应的安装目录下mkdir /usr/local/mongodbtar -zxvf mongodb-linux-x86_64-4.0.10.tgzmv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb新建目录,分别用来存储数…

linux sqlserver 管理工具,Linux连接SqlServer的图形化工具SQuirrel

SQuirrel SQL一款基于java的数据库管理工具。所以可以运行在任意平台上,除了界面丑一点。在windows上我绝对不会选的,navicat多好。安装下载地址:https://sourceforge.net/projects/squirrel-sql/?sourcetyp_redirect在控制台运行&#xff1…

JDK源码包结构分类

最近查看JDK源码时,无意间发现几个类在陌生包里:com.sun.*、sun.*、org.*,google了一把总结了下以备他人搜索,如内容有误欢迎指正!Jre库包含的jar文件(jdk1.6):resources.jar、rt.jar、jsse.jar、jce.jar、…

GJM :Sql 各种语句 以及函数 [转载]

版权声明:本文原创发表于 【请点击连接前往】 ,未经作者同意必须保留此段声明!如有侵权请联系我删帖处理!1.更改数据库的名称 2.表中有数据的情况下再添加列、删除列 3.在SQLServer 中各种查询语句的使用示例 4.模糊查询的语句 5.…

linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)

1.中断处理的体系结构我们知道编写设备驱动程序一定要用到中断处理函数,这在驱动程序的编写中,占据很重要的一部分。在响应一个特定的中断的时候,内核会执行一个函数,该函数叫做中断处理程序(interrupt handler)或中断服务例程(in…

c语言作业题五六章答案,数据结构(C语言版)第五六章习题答案

数据结构(C语言版)第五六章习题答案,人民邮电出版社,答案很详细。(15)设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有( )个。A. n-1 B.n C. n1 D. n22.应…

Android中土司(Toast)的使用

Android中Toast的使用 什么是土司(Toast)? Toast是Android系统提供的一种非常好的提示方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何的屏幕空间. 下面我们通过代码来体验一下土司在Android中的使用 1 import android.a…

atoll找不到标识符c语言,C/C++编程笔记:C++中的atol,atoll和atof函数

1、atol()此函数将作为参数传递给函数调用的C类型字符串转换为长整数。它解析C字符串str,将其内容解释为整数,并作为long int类型的值返回。该函数丢弃出现在字符串开头的空白字符,直到找到非空白字符为止。如果C字符串str中的非空白字符序列…

c语言指针改良,重新认识C语言指针(上)(示例代码)

? 独创性并不是首次观察某种新事物,而是把旧的、很早就是已知的,或者是人人都视而不见的事物当新事物观察,这才证明是有真正的独创头脑 —尼采本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。https://github.com/midou-tech/article…

HT68F30控制GPG96244QS1 TFT液晶屏

资料上显示是SPI总线控制、在SPENB由高变底的时候起动传输、由低到高的时候停止转输、并且传送的时候先传高位的数据、现在没有效果出来(正在找问题) 没有效果的意思是: 1、LCD屏没有图像、只有背光在亮 2、还没有找到一个寄存器或者一种方…

linux —— shell 编程(文本处理)

导读 本文为博文 linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展。(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录基本文本处理流编辑器sedawk模式扫描与处理语言1、基本文本处理sort :用于排序,…

ub c语言,操作系统之LRU算法 C语言链表实现

LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时…

VMware 虚拟机 Ubuntu 系统执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)

可能的原因是,你安装了也安装了其他的虚拟机软件,比如:VirtualBox。我们打开 控制面板 > 网络和共享中心 > 更改适配器设置 , 你就可以打开控制面板/网络和Internet/网络连接界面: 直接禁用相应的网络即可&#…

这本轻小说真厉害 2016

傲娇御坂美琴成轻小说女王一姐 轻小说排名公布 到了年底,作为轻小说的粉丝就没有理由不关注“这本轻小说真厉害!”的相关评选吧?腾讯动漫此前曾经报道过《OVERLORD》以及《龙王的工作》获得榜首殊荣的消息。而近日,年度的最佳作品、最佳角色以及最佳插画师等奖项也已经公布,快…