Oracle如何查询不等于某数值

 在Oracle中,"<>"、"!="、"^="都是表示“不等于”,都可以拿来使用。

  但是,在我使用的时候,却发现得不到我想要的数据,如下:

--查询 IS_JOB_CREATE != 2 的数量;
 SELECT count(1)
  FROM gccsdb.CCS_MSALE_RCMD_SETTING t
 where t.IS_JOB_CREATE != 2; 

 --> count(1) = 0

执行语句之后,发现 t.IS_JOB_CREATE = NULL 的数据,一条也没有命中。查资料之后发现,NULL 只能用 is not null 或 is null 来判断,如下:

--查询 IS_JOB_CREATE != 2 的数量;
 SELECT count(1)
  FROM gccsdb.CCS_MSALE_RCMD_SETTING t
 where t.IS_JOB_CREATE != 2 or t.IS_JOB_CREATE is null;

 --> count(1) = 224

这就有值了,但这并不是我们想要的数据。

用另一种方法实现:

 既然 NULL 不能用 != 命中,那我就想办法把 NULL 赋值。这里采用两种方式,如下:

--查询 IS_JOB_CREATE != 2 的数量;
 SELECT count(1)
  FROM gccsdb.CCS_MSALE_RCMD_SETTING t
 where instr(concat(t.IS_JOB_CREATE, 1), 2) = 0;

 SELECT count(1)
  FROM gccsdb.CCS_MSALE_RCMD_SETTING t
 where nvl(t.IS_JOB_CREATE,1) != 2;

 

 
posted @   不积硅步,无以至千里  阅读(907)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示