not in 和 not EXISTS區別

1.用IN時不對NULL進行處理 select

2.NOT EXISTS 與 NOT IN 不能徹底互相替換,看具體的需求。若是選擇的列能夠爲空,則不能被替換,例如:
select * FROM  T_DataEle_New where dataeleid  not in (select dataeleid FROM t_data_path)

SELECT * from T_DataEle_New where  EXISTS (SELECT 1 from t_data_path where t_data_path.dataeleid=T_DataEle_New.dataeleid)查詢

這2條SQL,若是t_data_path中的 dataeleid 存在NULL值的時候,第一條SQL查詢不到記錄的。第二條則能夠data

若是表t_data_path中的 dataeleid有非空約束的話,2條SQL結果相同path

注意:不要亂用NOT IN 

相關文章
相關標籤/搜索