Oracle数据库开发中的不等于号的使用
小标 2018-02-01 来源 :网络 阅读 2052 评论 0

摘要:今天碰到一个Oracle数据库开发中不等于号的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下

今天碰到一个Oracle数据库开发中不等于号的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下

关于Oracle中的不等于号: 

在Oracle中, 

<> 
!= 
~= 
^=


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

但是奇怪是的, 我想拿出price不是180000的商品时:(price是Number类型的) 

SELECT id, name  FROM product where price<> 180000;

执行这个语句时,priceis null  的记录不出来。也就是拿不到price是null的商品。必须使用: 

SELECT id, name  FROM product where price<> 180000 or price is null;才行。

字符串的字段存在同样的问题。 

记住:null只能通过is null或者is not null来判断,其它操作符与null操作都是false。 


======================================================================================================


   测试:

select * from test where name<>'xn'。

只能查出name非空的记录。去掉name<>'xn'就可以了。这种写法有问题。 

然后用了instr(name,'xn')=0 来判断,如果name非空的话,判断还是有效的。如果name为空,这个判断又出问题了。不得已只得采取instr(concat(name,'xx'),'xn') = 0来判断,因为就算name为空,当和'xx'连接后,也会不为空的。 

所以最后的sql语句为: 

select * from test where instr(concat(name,'xx'),'xn') = 0 来查询name字段不等于'xn'的记录。

除了上述Oracle数据库开发中不等于号的使用还可以用

select * from test where nvl(name,'xx')<>'xn'

来查询name字段不等于'xn'的记录。

想了解更多Oracle数据库开发相关内容请关注职坐标Oracle数据库频道。


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程