Oracle語句中IN和=的區別有:
1、首先應用范圍不一樣:in 可以理解為是范圍內的選擇;= 只有一個。例如:
select sno, sname from t1 where sno in ('sn1001','sn1002');
select sno, sname from t1 where sno in ('sn1001');
select sno, sname from t1 where sno ='sn1001';
select sno, sname from t1 where sno in (select sno from t2); --子查詢結果可以不止一個結果
select sno, sname from t1 where sno =(select sno from t2); --子查詢結果只能有一個。
2、其次性能也不一樣;=的性能大於in的性能,因為=能較好的使用索引等。
3、in 表示在一個結合內進行查詢,比如 select * from character where letter in ('A','B','C')。
=的作用就是一個值的比較。但是等號也可以實現in的效果,只是寫起來比較麻煩。比如上面的例子,也可以這樣寫:
select * from character where letter='A' or letter='B' or letter='C'.
兩個運算符都比較常用,根據具體的情況選擇。