程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle中不等於號問題

Oracle中不等於號問題

編輯:Oracle教程

Oracle中不等於號問題


在Oracle中,不等於號有以下幾種方式:
<>,!=,^=

測試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;



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved