问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于Oracle中的不等于号

发布网友 发布时间:2022-04-23 02:34

我来回答

2个回答

懂视网 时间:2022-04-07 23:20

 

测试SQL

create table test(
 id int,
 name varchar2(10),
 age int
)

insert into test(id,name,age) values(1,‘zhangsan‘,23);
insert into test(id,name,age) values(2,‘lisi‘,‘‘);
insert into test(id,name,age) values(3,‘wangwu‘,null);
insert into test(id,name,age) values(4,‘sunqi‘,27);
insert into test(id,name,age) values(5,‘‘,22);

如图:

技术分享

字段NAME和AGE都有空值

 

例1、查询AGE不等于23的数据

select * from test where age <> 23;

技术分享

 

例2、查询NAME不为lisi的数据

select * from test where name != ‘lisi‘;

技术分享

 

以上两个例子严格意义上说均不符合我们的要求,因为没有把null值查询出来

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

 

最后正确的sql语句为:

select * from test where instr(concat(name,‘xx‘),‘lisi‘) = 0; --查询name字段不等于‘lisi‘的记录
或
select * from test where nvl(name,‘xx‘)<>‘lisi‘; 
select * from test where instr(concat(age,00),23) = 0; --查询age字段不等于23的记录
或
select * from test where nvl(age,00)<>23;


 作者:itmyhome


Oracle中不等于号问题

标签:oracle   不等于号   

热心网友 时间:2022-04-07 20:28

在Oracle中,

<>
!=
~=
^=

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

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

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

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

SELECT id, name FROM proct 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'的记录。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? oracle不等于号怎么表示 2012的QQ全套透明皮肤怎么弄? QQ2012版透明皮肤怎么弄?急··· ‘怎样让qq皮肤透明 QQ透明皮肤怎么弄? qq2012透明皮肤怎么弄啊 怎么弄QQ2012登陆时的透明皮肤? 怎么设置QQ2012透明皮肤 2012最新版qq怎样设置透明皮肤? 怎么把QQ皮肤弄成全透明? 如何弄QQ2012透明皮肤? 在农村庭院种植香蕉花时需要注意什么?香蕉花有何作用? 香蕉花发黑还能食用吗? 相交花是冶什么病? 霸王果功效与作用有哪些? 香蕉花晒干可以食用吗 芭蕉花炖猪心对心脏有无好处 香蕉花是什么颜色的? 香蕉花煮猪肺能治病吗? 香蕉花和仙人掌一起煲汤可以吃吗? oracle数据库中的不等号怎么写 oracle 不等于 oracle支持“!=”不等于符号 SQL定义中不等于怎么写 oracle 不等于1怎么查? oracle,检索的时候 &lt;&gt;(不等于) 、 &gt;(大于) 、 &gt;=(大于等于) 这3种... oracle不等于 Oracle SQL中的!=与&lt;&gt;有什么区别? sql中怎么表示“不等于”(数据库,SQL) 解释SQL语句中的“不等于” oracle中&lt;&gt;是什么意思 Oracle数据库中如何选择合适的索引类型 SQL 语句~~不等于怎么表示? Oracle数据库中用什么符号怎么表示两个数值是否相等 Oracle数据库中怎样选择合适索引类型 oracle里一些常用的符号是哪些? ORACLE中字符串是否相等的比较 如何在word图形上加字 如何在WORD里面的绘图画布上添加文字? 怎样在word画图并插入文字