社区
基础和管理
帖子详情
求助!!Oracle里如何判断NULL?
wxylvmnn
2012-09-13 03:21:33
如果用到where语句里是
where 字段A is null这样的形式,
这样是OK的。
但,写在存储过程的 判断语句里时,该如何写呢?
代码里有 if 字段A = 字段B then 的逻辑,
但当字段A或者B都是NULL的时候,这个判断就失效了。
...全文
2084
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
宋体.rar
当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。
水电站综合自动化系统工程同期图.dwg.rar
水电站综合自动化系统工程同期图.dwg.rar
Arial Narrow Bold Italic.TTF
当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。
Proactive-Automation-Boundary-Human-Escalation-Readiness-Checker-v1.0-原创源码与文档.zip
原创 JavaScript 工程工具合集,围绕智能体协作、数据治理、模型评测与工作流审计等场景提供可运行源码。每个压缩包均包含自动化测试、可复现合成示例、离线 HTML/JSON/SVG 报告、1080×720 真实运行截图、README、MIT License 与原创授权声明;Node.js 18+ 可直接运行,零第三方运行依赖,不包含榜单项目源码、模型权重、品牌素材或官方截图。
Speech-Pipeline-Observability-Reversible-Change-Budget-Planner-v1.0-原创源码与文档.zip
原创 JavaScript 工程工具合集,围绕智能体协作、数据治理、模型评测与工作流审计等场景提供可运行源码。每个压缩包均包含自动化测试、可复现合成示例、离线 HTML/JSON/SVG 报告、1080×720 真实运行截图、README、MIT License 与原创授权声明;Node.js 18+ 可直接运行,零第三方运行依赖,不包含榜单项目源码、模型权重、品牌素材或官方截图。
基础和管理
17,377
社区成员
95,111
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章