社区
基础和管理
帖子详情
求助!!Oracle里如何判断NULL?
wxylvmnn
2012-09-13 03:21:33
如果用到where语句里是
where 字段A is null这样的形式,
这样是OK的。
但,写在存储过程的 判断语句里时,该如何写呢?
代码里有 if 字段A = 字段B then 的逻辑,
但当字段A或者B都是NULL的时候,这个判断就失效了。
...全文
2054
14
打赏
收藏
求助!!Oracle里如何判断NULL?
如果用到where语句里是 where 字段A is null这样的形式, 这样是OK的。 但,写在存储过程的 判断语句里时,该如何写呢? 代码里有 if 字段A = 字段B then 的逻辑, 但当字段A或者B都是NULL的时候,这个判断就失效了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jsshizhanab
2014-01-05
打赏
举报
回复
NULL是不存在 两个NULL比较应该也是FALSE吧
wxylvmnn
2012-09-18
打赏
举报
回复
谢谢大家热心回帖哈。
找到了一个function能够实现等于和不等于的判断,跟大家共有下。
FUNCTION ISEQUAL
(
VAR1 IN VARCHAR2,
VAR2 IN VARCHAR2
)
RETURN NUMBER IS
BEGIN
IF (VAR1 IS NULL AND VAR2 IS NULL OR VAR1 IS NOT NULL AND VAR2 IS NOT NULL AND VAR1 = VAR2) THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END ISEQUAL;
jdsnhan
2012-09-14
打赏
举报
回复
你可以nvl(A,'0') = NVL(B,'0'). ''这个也是空
mosquito_lover1
2012-09-14
打赏
举报
回复
NULL不能拿来比较=or<>
陈字文
2012-09-13
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
SQL code
--还有应是变量吧,字段你哪可以if then
if nvl(A,'')=nvl(B,'') then
[/Quote]
++
fw0124
2012-09-13
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
如果是等号判断,这么写应该可以。
但是要是 不等号 的话,应该怎么写呢?
[/Quote]
总之一句话,,除了IS NULL、IS NOT NULL以外,对NULL的任何操作的结果还是NULL。
对于NULL的情况,单独考虑就是了。
fw0124
2012-09-13
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
如果是等号判断,这么写应该可以。
但是要是 不等号 的话,应该怎么写呢?
[/Quote]
总之一句话,,除了IS NULL、IS NOT NULL以外,对NULL的任何操作的结果还是NULL。
对于NULL的情况,单独考虑就是了。
wxylvmnn
2012-09-13
打赏
举报
回复
如果是等号判断,这么写应该可以。
但是要是 不等号 的话,应该怎么写呢?
fw0124
2012-09-13
打赏
举报
回复
[Quote=引用楼主 的回复:]
如果用到where语句里是
where 字段A is null这样的形式,
这样是OK的。
但,写在存储过程的 判断语句里时,该如何写呢?
代码里有 if 字段A = 字段B then 的逻辑,
但当字段A或者B都是NULL的时候,这个判断就失效了。
[/Quote]
是的,oracle就是这样处理null的。
请参考http://blog.csdn.net/fw0124/article/details/6210730
如果需要a,b都是null的时候判断相等,可以这样
a is null and b is null
wxylvmnn
2012-09-13
打赏
举报
回复
写0不行啊,,,0是有数据的意思了。。。
TO:zhangandli
你看这样写,不好用的。
BEGIN
IF NVL(NULL,'') = NVL(NULL,'') THEN
dbms_output.put_line('YES');
ELSE
dbms_output.put_line('NO');
END IF;
END;
Alex20150716
2012-09-13
打赏
举报
回复
用length()函数判断
wxylvmnn
2012-09-13
打赏
举报
回复
试过了,这样写不好用啊。。。
貌似NULL和''的效果是一样的啊。。
iqlife
2012-09-13
打赏
举报
回复
字段A = 字段B 都是NULL会失效么,没有遇到过
这样写就避免了,
nvl(字段A,0) = nvl(字段B,0)
人生无悔
2012-09-13
打赏
举报
回复
--还有应是变量吧,字段你哪可以if then
if nvl(A,'')=nvl(B,'') then
Oracle
和MySQL如何
判断
是否为空或
NULL
本文详细对比了
Oracle
和MySQL中如何
判断
字段是否为空或
NULL
,包括使用`IS
NULL
`、`= ' '`等条件的区别,并提供了查询示例。在
Oracle
中推荐使用`IS
NULL
`和`IS NOT
NULL
`,而在MySQL中建议使用`=' '`或`IS
NULL
`进行过滤。
oracle
判断
不是
null
,
oracle
中
判断
不为
null
本文探讨了SQL中如何使用IS
NULL
操作符
判断
列值是否为空,并提供了实例如筛选单价>500的订单、处理
NULL
值的函数NVL和SQL命令。此外,还介绍了
Oracle
中关于空值处理、显式游标与INTO子句,以及常用查询统计。
Oracle
null
比较
判断
本文详细介绍了在
Oracle
数据库中处理
NULL
值的正确方法,包括使用IS
NULL
、NVL和DECODE函数进行逻辑
判断
,避免了直接使用比较运算符可能导致的问题。同时,提供了字符串相等性的函数实现,确保在
NULL
值情况下也能正确比较。
orcal
判断
字段为空_
Oracle
判断
字符串为''还是
Null
本文主要探讨
Oracle
中
判断
varchar2类型字段是否为空的问题。通过示例代码发现,在
Oracle
pl/sql
里
,''会被当成
null
处理,
Oracle
中的空应用
null
表示,非空用not
null
。还给出了具体SQL查询示例,展示如何
判断
字段为空。
Oracle
case 字段 when
null
判断
字段为
NULL
问题记录
本文探讨了在
Oracle
数据库中使用CASE语句进行字段
判断
时遇到的空值问题。通过案例对比,解释了为何使用`WHEN
NULL
THEN`会出错,而`WHEN contractdate IS
NULL
THEN`才是正确处理空值的方法。分析了
NULL
值在SQL中的特殊性质,强调了在处理可能为
NULL
的字段时,必须使用`IS
NULL
`的正确性。
基础和管理
17,377
社区成员
95,113
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章