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

 

时间: 2024-09-08 08:40:16

浅析Oracle中的不等于号的相关文章

浅析Oracle中char和varchar2的区别

以下是对Oracle中char和varchar2的区别进行了分析介绍,需要的朋友可以过来参考下   char是定长的 char(10)   varchar2(10)  同样存 a ,char占用了10个字符,varchar2 只占用了 一个字符(一个中文占两个字符,英文占一个). 但是char的查询速度要比varchar2快.varchar2,Oracle还要进行语法分析,这个字段是多少位的,所以慢一些.相对于上千万的记录来说. 一般的项目 没什么区别,随便用.

javaScript中两个等于号和三个等于号之间的区别介绍_基础知识

一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false. ===表示恒等于,比较的两边要绝对的相同 alert(0 == ""); // true alert(0 == false); // true alert("" == false); // true alert(0 === ""); // false alert(0 === false); // false alert("" === fal

JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别_javascript技巧

一.JavaScript"=="的作用 1.当==两边的内容是字符串时,则比较字符串的内容是否相等. 2.当==两边的内容是数字时,则比较数字的大小是否相等. 3.当==两边的内容是对象或者是对象的函数属性时,则比较内存地址是否相等. 二.==和===的区别 ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase. 举例说明: <script type="text/javascript">

请问下 javaScript中两个等于号和三个等于号之间的区别、、

问题描述 百度了下 还查不到..所以 到这里来问下 "==" 和"==="之间的区别..... 解决方案 一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false.解决方案二:我是用google搜的 我又用百度搜了一下 同样的关键字 google能搜到 baidu搜不到 呵呵 这就是差距解决方案三:===表示恒等于,比较的两边要绝对的相同运行体会一下以下的代码就会清楚了:alert(0 == ""); // truea

浅析Oracle中char和varchar2的区别_oracle

char是定长的 char(10)   varchar2(10)  同样存 a ,char占用了10个字符,varchar2 只占用了 一个字符(一个中文占两个字符,英文占一个). 但是char的查询速度要比varchar2快.varchar2,Oracle还要进行语法分析,这个字段是多少位的,所以慢一些.相对于上千万的记录来说.一般的项目 没什么区别,随便用.

Javascript中两个等于号和三个等于号的区别(==/===)

==//表示值的比较 ===//表示对象类型的比较 1.对于string,number等基础类型,==和===是有区别的. a)不同类型间比较,==之比较"转化成同一类型后的值"看"值"是否相等,===如果类型不同,其结果就是不等. b)同类型比较,直接进行"值"比较,两者结果一样. alert('1'==1);//结果是true alert('1'===1);//结果是false 2.对于Array,Object等高级类型,==和===是没有区

Oracle“不等于号”与Nulls的情况(转)

今天突然才发现,Oracle中的"不等于操作符"是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的记录(意识里认为null也是"不等于500"的其中一种情况). 而实际上,它只返回不为null且不等于500的记录,见如下测试.   使用SCOTT的公共数据测试: --All data --Not equal 500(Not contain null) --Not e

探讨Oracle中的&amp;号问题

在Oracle中inset里面的内容如果中有'&'号,有可能会插入失败,下面介绍一下方法: 1.在pl/sql中:&可以用&&代替 2.在sql developer中:&可以用||chr(38)||代替

oracle中 SCN号总结 上篇

1.SCN(System Change Number) : SCN是什么? system change number (SCN)是一个非常重要的标记,Oracle使用它来标记数据库在过去时间内的状态和轨迹.Oracle使用SCN来保 存所有变化的轨迹.SCN是一个逻辑时钟来记录数据库事件.它非常的重要,并不是只是为了恢复.SCN的最大值是0xffff.ffffffff.SCN有点类似于sequence,Oracle 在SGA中增加它.当一个事务修改或者插入数据,Oracle首先写入一个新的SCN