在sql中做除法处理的时候,可能需要处理除数为零的情况。

(1).case语句
处理方法是用case when ... else 来处理

(2).nullif函数
nullif函数有两个参数,定义如下:
NULLIF( expression , expression )
其作用就是:如果两个指定的表达式相等,就返回null值。

oracle中decode函数
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

select a/b from table1 t1;
--当b为0的时候,oracle会提示除数为0,而我们一般希望除数为0时,直接输出0即可。
--解决方法:
select decode(b,0,0,a/b) from table1 t1;
--即当b = 0时,返回0,否则才返回a/b的结果。

sql server中的nullif函数
含义解释:nullif(expression,expression) 两表达式相同,则返回null

--解决方法:
select isnull(a/nullif(b,0),0) from table2 t2;
--当除数b为0时,除数变为null,则a/b也为null,再通过isnull函数将null转为0.

通过case... when...

--解决方法:
select case when b=0 then 0 else a/b end from table t3
--当除数b等于0时,直接返回0,否则再返回a/b

备注:随笔中内容来源于网上资料整理,仅供参考。

SQL语句中,除数为0时,相应方法的更多相关文章

  1. 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka

    1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...

  2. Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项

    貌似已经半年多没写一篇帖子了,充分的说明要么老总一天折腾的让人心齐疲惫,没心情去写:要么另外一种可能就是自己不思进取,说白了就是懒.好在这种状态在今天被打破了.MoNey加油. 众所周知,想在Enti ...

  3. mybatis sql语句中 in() 长度为0或null的情况

    mybatis sql语句中 in() 长度为0或null的情况 比如: select * from A where colName IN <foreach collection="m ...

  4. (转载)SQL语句中Group by语句的详细介绍

    转自:http://blog.163.com/yuer_d/blog/static/76761152201010203719835 SQL语句中Group by语句的详细介绍              ...

  5. SQL点滴35—SQL语句中的exists

    原文:SQL点滴35-SQL语句中的exists 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHE ...

  6. SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

    原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别 SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制 ...

  7. SQL语句中日期的计算方法大全

    sql语句中的日期处理一.日期處理函數1.日期增減函數 dateadd(datepart,number,dtae) datepart:是規定應向日期的哪一部分返回新值的參數.下列是sql server ...

  8. sql 语句中count()有条件的时候为什么要加上or null

    参考:https://blog.csdn.net/qq_32719287/article/details/79513164 1.sql 语句中count()有条件的时候为什么要加上or null. 如 ...

  9. SQL语句中的select高级用法

    #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

随机推荐

  1. uni-app 云打包证书生成笔记

    一.android 云打包生成证书 1.jdk和jre安装,配置环境 2.在 C:\Users\Administrator\.android 文件夹下执行:keytool -genkey -alias ...

  2. PHP调试环境之:Eclipse for PHP

    Eclipse IDE for PHP Developers + Zend Debugger Feature . 在网上搜过一些朋友配置 eclipse --> php --> pdt , ...

  3. sts测试流程

    测试目的: 测试安全补丁打上了没 测试前提: 1.发货版本,user debug版本,相应安全补丁已合入,测试工具与安全补丁是对应的 2.selinux:Enable 3.连接ADB,stay awa ...

  4. APT攻防整理-攻击方法/工具

    攻击步骤 一般步骤 社工 武器制造 武器投递 漏洞利用 安装后门 后渗透 这5个阶段攻击非常隐蔽,可绕过传统安全设备检测 潜伏控制 传统通信方式不会使用,如cc/socket/http(可采用安全隧道 ...

  5. mooc-IDEA 编写高质量代码--009

    十五.IntelliJ IDEA -编写高质量代码 1.重构 [1]重构变量 选中某个变量,按住 shift+F6,修改变量名,则所有该变量名均会被重构为新变量名 [2]重构方法[ctrl+F6 | ...

  6. < 备考CET6 - 作文模板句 - 话题:重要性/做选择 >

    CET6 - 作文模板句 - 重要性/做选择 重要性 开头 Currently, We are entering a brand new era filled with (opportunities  ...

  7. 转载 IDEA搭建maven项目详细步骤(解决没有src及其下面的文件)

    转载自

  8. vscode 在ubuntu的terminal中下划线不显示解决方案

    Ctrl+Shift+P,打开搜索,Perferences:Open User Settings 设置Editor:Font Family 为 'Ubuntu Mono', monospace 保存, ...

  9. Junit测试错误:### Error building SqlSession

    错误代码: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error ...

  10. 【洛谷p1036】选数

    (一定要声明我太蒟了,这个题扣了一上午……) 算法标签: …… dfs真的不是我所擅长的qwq,这道题的思路其实很简单,就是先dfs搜索所有可能的和,然后判断是不是质数.说着好说,然鹅并不好写: 第一 ...