Oracle PL/SQL判断两个字段相等或不等
问题描述
今天写sql的时候两个字段值明明不相等(一个空,一个不空),但是判断不相等的时候返回时的是false。
原因分析:
经过测试发现,并不是!=,<>不稳定,而是字段值为null时,不能使用!=或者<>比较值,应该使用IS NULL判断是否为空。所以当 a 或b有一个为null时,下面语句都会失效
a!=b a<>b
解决方案:
为了解决NULL带来的“无法判断相等或不等”的问题,我们可以使用NVL函数解决
NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,主要用于对数据列上的空值进行处理,语法格式如:NVL( string1, replace_with)。
NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。
NVL函数返回值类型可以为字符型、日期型、日期时间型、数值型、货币型、逻辑型或nul值,所以很好用。
NVL(a,0)!=NVL(b,0)
NVL(a,0)<>NVL(b,0)
这样写就可以了!
坑无处不在啊!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfggfge
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13