社区
基础和管理
帖子详情
求助!!Oracle里如何判断NULL?
wxylvmnn
2012-09-13 03:21:33
如果用到where语句里是
where 字段A is null这样的形式,
这样是OK的。
但,写在存储过程的 判断语句里时,该如何写呢?
代码里有 if 字段A = 字段B then 的逻辑,
但当字段A或者B都是NULL的时候,这个判断就失效了。
...全文
2056
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
我的原创地址:https://dongkelun.com/2019/05/29/
oracle
AndMysql
Null
/ 前言 如题,本文总结
Oracle
和MySQL如何
判断
是否为空或
NULL
1、
Oracle
1.1 建表 CREATE TABLE TEST_
NULL
( ID VARCHAR2(100), NAME VARCHAR2(100) ) ; 1.2 INSERT INSERT I............
oracle
判断
不是
null
,
oracle
中
判断
不为
null
Null
也不等 于
Null
(近似理解: 未知的值不能等于未知的值,两者间的关系也是未知,否则数学和逻辑 上就乱套了)。– 注意: 下面的 SQL 适合于 MySQL,如果是
Oracle
,你需要加上 … from dual; select
null
> 0; – result:......
ORACLE
用来
判断
列值是否为空的操作符是___ A.=
NULL
B.IS
NULL
C.AS ...
Oracle
null
比较
判断
oracle
中在可为
null
的字段上做逻辑关系运算要格外小心,如 <>,>,=,<,任何与
null
的运算结果都返回false, 因此对于可能为
null
的字段运算
判断
要用 is
null
来
判断
,或者使用函数nvl、decode处理后在
判断
,比如: where 字段名 is
null
或者where nvl(字段名,0) = 0; -- 假设字段类型是数字 ...
orcal
判断
字段为空_
Oracle
判断
字符串为''还是
Null
Oracle
判断
varchar2类型是不是为空
Oracle
判断
varchar2类型是不是为空'' ,用什么
判断
符VV_LIST:='DSSSFDFDSFDS';IF(VV_LIST <>'')THENDBMS_OUTPUT.PUT_LINE('PPPPPPPPPPPPPPPPP');ELSEDBMS_OUTPUT.PUT_LINE('BBBBBBBBBBBBBBBBBBBBBBBB...
Oracle
case 字段 when
null
判断
字段为
NULL
问题记录
在
Oracle
中使用case when
判断
某字段时,要注意到字段为空的情况,此时不能直接用when 字段,要改成条件表达
基础和管理
17,377
社区成员
95,112
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章