您当前的位置: 首页 > 数据库教程 > Oracle教程 > 浅析Oracle中的不等于号

浅析Oracle中的不等于号

作者:不详 来源:网络 发布时间: 2014-08-26 22:36 点击:
前几天碰到一个关于Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下,需要的朋友可以参考下 关于Oracle中的不等于号: 在Oracle中, != ~= ^= 都是不等于号的意思。都可以使用。 但是奇怪是的, 我想拿出price不是180000的商品时:(price是Num

浅析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'的记录。

  或者可以用 select * from test where nvl(name,'xx')<>'xn' 来查询name字段不等于'xn'的记录。
分享到:
本文"浅析Oracle中的不等于号"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4