首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么INTEGER/INTEGER不能在SQL中给出答案?

在SQL中,INTEGER/INTEGER不能给出答案的原因是因为在整数除法中,如果除数为0,会导致除法运算错误。在数学中,除数为0是一个未定义的操作,因此在SQL中也会抛出错误。

为了避免这种错误,可以在进行除法运算之前,先判断除数是否为0。可以使用IF语句或CASE语句来进行条件判断,如果除数为0,则返回一个特定的值或者执行其他逻辑。

例如,在MySQL中可以使用IF函数来进行判断:

代码语言:txt
复制
SELECT IF(divisor = 0, '除数为0', dividend / divisor) AS result FROM table;

在这个例子中,如果除数为0,则返回字符串"除数为0",否则返回除法运算的结果。

在SQL中,还可以使用NULLIF函数来处理除数为0的情况。NULLIF函数接受两个参数,如果这两个参数相等,则返回NULL,否则返回第一个参数的值。可以将除数与0进行比较,如果相等,则返回NULL,否则进行除法运算。

代码语言:txt
复制
SELECT dividend / NULLIF(divisor, 0) AS result FROM table;

这样可以确保在除数为0的情况下,返回NULL而不是错误。

需要注意的是,以上方法只适用于整数除法,对于浮点数除法,除数为0会返回特殊值(例如Infinity或NaN),而不会抛出错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么说两个 Integer 数值之间建议使用 “==” 进行比较

好,1 2 3 结果如下所示 当我们替换注释那一行的时候,运行结果如下 看到这里其实很多小伙伴都知道是为什么,因为 genA() 方法里面是使用的 Integer 的构造器,构造的是一个新的对象,所以在使用...是的,原因是这个,但是还有一点没说清楚那就是为什么在使用 genA() 的时候,下面的结果会不一样。...上面的代码 Integer b = 0; 会触发自动的装箱调用 Integer valueOf() 方法。而在使用 a == 0 这句的时候,会触发自动的拆箱。...我们这里的代码是 0,所以会从缓存获取。...下面再说一下为什么说在 -128 和 127 以内的也建议直接使用 == 来实现比较,很显然就跟我们上面的genA() 方法一样,很多时候不会一下子就知道一个方法值是怎么得到,即使是缓存范围以内,别人也有可能是通过构造函数创建出来的

68210

MySQL SQL 语句为什么走索引?

发表于2019-08-212020-03-03 作者 Ryan 首先, 明确一下在MySQL ,执行 SQL 语句流程如下(图来自网络): image.png 一条 SQL...SQL 命令解析器;2. 代价分析器;代价分析器没有在这个图中展示出来;这也是 SQL 未命中索引的关键所在。...8 Tracing the Optimizer (https://dev.mysql.com/doc/internals/en/optimizer-tracing.html) 官方给出的使用语法...的的时候,对 SQL 的执行代价会有个判断,如果走索引的代价,超过走索引,那它就放弃使用索引,也就是我们执行 SQL 时,所遇到的 explain 分析走索引,真正线上执行没有走索引的原因。...= 等非判断,是走索引的,其实是不严谨的,或者说是错误的,真正的原因与这里说的 “执行代价分析”都是一回事。

1.3K10

被经理邀请去“爬山”,只是因为我写错了一条SQL语句?

果然这条 SQL 语句开始走了索引。小杨沾沾自喜以为解决了个天大的 Bug。 经理微微一笑问道“你知道为什么为什么加了引号就走了索引吗?如果字段是 int 类型,那么查询的时候需不需要加引号呢?...又是为什么呢?” 正餐来了 小杨被问的呆在原地,无法回答。...小杨搬来了答案 码儿嘟嘟骑的号主告诉小杨 在 MySQL 查询,当查询条件左右两侧类型匹配的时候会发生隐式转换 也就是说 SELECT wx_id from `user` WHERE wx_id =...所以虽然需要隐式转换,但不影响使用索引 小杨追问:“你还能在告诉我一些隐式转换的知识吗?”...有时候我们的数据库表的一些列是varchar类型,但是存储的值为‘1123’这种的纯数字的字符串值,一些同学写sql的时候又不习惯加引号。

64320

单片机c语言程序设计试卷_stm32常见面试题

标识#define在宏应用的基本知识。...如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。...用变量a给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(...pointers to functions that take an integer argument and return an integer ) 答案是 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

75420

你真的理解Integer的缓存问题吗?

一、背景 下面给出一个例子,问输出的结果是多少 public class IntTest { public static void main(String[] args) {...问原因则随口就说”Integer缓存了-128到127之间的整数对象“,为什么会缓存?还有其他答案?可能就不知道了。 what??? 难道这不是标准答案?还想咋地?...二、分析 2.1 运行 想知道答案很容易,直接运行,结果是 true ,false。...2.3 反汇编 前面讲到了,用到了 再问一个问题  为什么调用了   java.lang.Integer#valueOf(int) ?...三、总结 我们看一些文章的时候,不要止步于文章给出的标准答案,否则总是“背”文章,印象不深刻。 最好自己能够动手DEMO一下,能过亲自去源码里看一看,能够有自己的思考,才能学得更多。

32920

一道面试题考验了你对java的理解程度

有人可能在没经过仔细考虑的情况下,给出以下的答案 ? 很遗憾,这是错误的。重要的事注释三遍!!! 那么为什么错误,原因是什么?...在main方法,CODE_1间的代码为声明了两个对象,分别设置value为1和2,而swap1和swap2两个方法的目的是为了交互这两个对象的value值 先思考一下,应该输出的结果是什么 ......如果你不想知道为什么,只想知道结果,那么我就直说,自动装箱就是jdk调用了Integer的valueOf(int)的方法,很简单,看源码 ?...既然出了肯定是有解的,可以实现,回头看看,在上面swap2的那个例子是通过set方法来改变值的,那么Integer有没有提供呢?答案没有(我没找到) 那就先看看源码 ?...这是Integer的构造函数,可以看到Integer对象实际值是用value属性来存储的,但是这个value是被final修饰的,没办法继续找,value没有提供任何的set方法。

50420

99%的Java程序员会踩的6个坑

答案:是false。 有些同学可能会反驳,Integer不是有范围是:-128-127的缓存吗? 为什么是false? 先看看Integer的构造方法: 它其实并没有用到缓存。...答案在valueOf方法: 如果上面的判断改成这样: String orderStatus1 = new String("1"); String orderStatus2 = new String(...答案是否定的。 为什么?...意不意外,惊惊喜? 其根本原因是:过滤后的集合,保存的是对象的引用,该引用只有一份数据。 也就是说,只要有一个地方,把该引用对象的成员变量的值,做修改了,其他地方也会同步修改。...jdk的官方给出答案。 该方法会替换每一个匹配的字符串。 既然replace和replaceAll都能替换所有匹配字符,那么他们有啥区别呢? replace有两个重载的方法。

46420

译文《最常见的10种Java异常问题》

非检查型异常(Unchecked) 2、异常管理的最佳实践箴言 3、为什么在try代码块声明的变量不能在catch或者finally中被引用?...4、为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 抛出的异常不一样呢?...为什么在try代码块声明的变量不能在catch或者finally中被引用? 看下面这段代码,在try代码块声明的 String s 就不能在catch中被引用, 这段代码在编译期是通不过的。...为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 抛出的异常不一样呢?...答案是当然可以,不过如果在同一个catch子句中捕获的这些异常都直接或间接继承自同一父类,那么就只能在catch子句中捕获父类了。

65330

你真的理解 Integer 的缓存问题吗?

在开始之前,我们先看看下面给出的这个例子,问输出的结果是多少: public class IntTest { public static void main(String[] args) {...(c == d); } } 很多小伙伴可能非常犹豫,有一些经验的同学可以回答出"标准"答案。...问原因则随口就说”Integer缓存了-128到127之间的整数对象“,为什么会缓存?还有其他答案?可能就不知道了。 what??? 难道这不是标准答案?还想咋地?...运行 想知道答案很容易,直接运行,结果如下: ? 源码法 直接看源码, 我们知道声明整数时,会通过 java.lang.Integer#valueOf(int) 构造(不信可以断点)。...反汇编 前面讲到了,用到了 再问一个问题 为什么调用了 java.lang.Integer#valueOf(int) ?

1.2K20

嵌入式C语言面试题_c语言基础面试题

如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:”我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。...goto Loop 用法: 基本上c语言中推荐goto的使用,不符合程序化设计的理念,呵呵。...用变量a给出下面的定义 a) 一个整型数(An integer) b)一个指向整型数的指针( A pointer to an integer) c)一个指向指针的的指针,它指向的指针是指向一个整型数(...pointers to functions that take an integer argument and return an integer答案是: a) int a; // An integer...(如果有的话)为什么? 这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。

82210

Mysqli使用bind_param()防止SQL注入的原理

mysql sql注入 进阶 今天偶然看了一篇博文,说是一道php面试笔试题,原文如下: 请找出下面代码的问题,修复并优化 100个。...性能:应该把所有SELECT拼装一个Sql,然后去除冲突的,再把剩余的通过批量插入的方式通过一条Sql插入。 性能:for应该该用foreach。...该题给出答案并不太令人满意,通过这道题让我想到的是,应该怎么做才能尽量避免SQL注入? 使用mysqli批处理技术,bind_param() 参数说明: i corresponding variable has type integer 整数 d corresponding variable has type double...has type string 字符串 b corresponding variable is a blob and will be sent in packets 二进制包 原理说明:为什么

39320

新同事问我 where 1=1 是什么意思?

今天来说明下为什么会这样写。...在mybatis中常用到if标签判断where子句后的条件,为防止首字段为空导致sql报错。...网上有很多人说,这样会引发性能问题,可能会让索引失效,那么我们今天来实测一下,会不会走索引 实测 title字段已经加上索引,我们通过EXPLAIN看下 EXPLAIN SELECT * FROM t_book...结论 where 1=1 也会走索引,不影响查询效率,我们写的sql指令会被mysql 进行解析优化成自己的处理指令,在这个过程1 = 1这类无意义的条件将会被优化。...最新2T+免费Java视频学习资料点击领取>> END 精品资料,超赞福利,免费领---- ---- 最近开发整理了一个用于速刷面试题的小程序《面试手册》【点击使用】;其中收录了上千道常见面试题及答案

45810
领券