oracle 不等于某类,Oracle如何查询不等于某数值
前言
今天在使用Oracle查詢“不等于”的時候,發(fā)現(xiàn)得到的數(shù)據(jù)與期望中的不一樣,進(jìn)一步查找資料才有發(fā)現(xiàn)。
1、Oracle的不等于
在Oracle中,"<>"、"!="、"^="都是表示“不等于”,都可以拿來使用。
但是,在我使用的時候,卻發(fā)現(xiàn)得不到我想要的數(shù)據(jù),如下:
--查詢 IS_JOB_CREATE != 2 的數(shù)量;
SELECT count(1)
FROM gccsdb.CCS_MSALE_RCMD_SETTING t
where t.IS_JOB_CREATE != 2;
--> count(1) = 0
執(zhí)行語句之后,發(fā)現(xiàn)?t.IS_JOB_CREATE = NULL?的數(shù)據(jù),一條也沒有命中。查資料之后發(fā)現(xiàn),NULL?只能用 is not null?或 is null 來判斷,如下:
--查詢 IS_JOB_CREATE != 2 的數(shù)量;
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
這就有值了,但這并不是我們想要的數(shù)據(jù)。
2、改造
既然?NULL?不能用 != 命中,那我就想辦法把?NULL?賦值。這里采用兩種方式,如下:
--查詢 IS_JOB_CREATE != 2 的數(shù)量;
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;
小結(jié)
簡單記錄下,以便今后遺忘時再次查找。
標(biāo)簽:count,CREATE,數(shù)值,查詢,gccsdb,JOB,CCS,Oracle,NULL
來源: https://www.cnblogs.com/qiuhaitang/p/12655562.html
總結(jié)
以上是生活随笔為你收集整理的oracle 不等于某类,Oracle如何查询不等于某数值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机显示无法接通服务器怎么办,手机无法接
- 下一篇: 小可爱