oracle如何查不等于,为什么Oracle使用不等于查不出来

关于Oracle中的不等于号:

在Oracle中,

<>

!=

~=

^=

都是不等于号的意思。都可以使用。

在oracle中判断某个字段Sex不是“Y”时,

select * from t_table where sex <> 'Y';

--但是sex是为空的,所以怎么查也查不出来。

那是因为 字段为null的时候,只能用 is null 和 is not null 来判断

--需要将查询语句改成这样:

select * from t_table where sex <> 'Y' or sex is null ;

注意:当使用or 和 and 拼接语句时,需要注意执行的先后顺序。where 后面如果有and,or的条件,则or自动会把左右的查询条件分开,即先执行and,再执行or。原因就是:and的执行优先级最高!

逻辑运算的顺序

SQL1: select count(*) from tableA where DEL_FLAG = '0' or DEL_FLAG is null and 1 <> 1

相当于

SQL1: select count(*) from tableA where DEL_FLAG = '0' or (DEL_FLAG is null and 1 <> 1)

当判断第一个条件DEL_FLAG = '0' 满足时,就不再继续判断后面的条件了

SQL2: select count(*) from tableA where (DEL_FLAG = '0' or DEL_FLAG is null) and 1 <> 1

判断(DEL_FLAG = '0' or DEL_FLAG is null)这个条件的结果,并且要同时满足后面的 and 1<>1

显然 1<>1 是false

原文链接:https://blog.csdn.net/Rm_and_Rf/article/details/102514957

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值