表裡存在NULL值導致not in子查詢失效的問題

2022-03-23 05:01:02 字數 913 閱讀 4435

表裡存在null值導致not in子查詢失效的問題

--這是我第一次給業務寫的sql語句,查詢來資料為0,當時沒考慮太多就發出去了。 後業務給我看了幾條測試資料,我發現確實查詢結果不對。

--再看語句邏輯確實沒錯,後經過排查是bb裡有幾行cust_id為null導致not in 查詢結果失效。  www.2cto.com  

--改良前的語句

select * from aa a with(nolock)

where a.status_code='04'

and a.issue_date>='2012-01-01' and a.issue_date<='2012-10-30'

and left(a.manorg_code,4)='8640'

and a.cust_id not in

(    select aa.cust_id from bb aa  with(nolock) where aa.sheet_type='q' and aa.acttype_code in ('01','02','16','19')) 

--改良後的語句

select * from aa a with(nolock)

where a.status_code='04'

and a.issue_date>='2012-01-01' and a.issue_date<='2012-10-30'

and left(a.manorg_code,4)='8640'

and a.cust_id not in

(select isnull(aa.cust_id,'') from bb aa with(nolock) where aa.sheet_type='q' and aa.acttype_code in ('01','02','16','19')

)

空值NULL處理

1.空值 null 處理 查詢籍貫為null同學 如果判斷乙個欄位的的值是不是null,需要使用is關鍵字,不能使用 select from tbstudent where stuaddress isnull 查詢籍貫不是null的所有同學 select from tbstudent where s...

處理Null(空)值

如果將null設定給物件的屬性,程式會報錯。例如 如果myblog.settitle null 程式會報錯。如果引數傳了乙個空值,那麼jdbc type對於所有的jdbc允許為空的列來說是必須指定的。解決方法 在引數中指定jdbctype屬性,這個屬性只在insert,update,delete的時...

異常與null值

從事程式設計師這個歷史就很神聖的職業有一段時間了。養成一種良好嚴肅的編碼習慣,不僅能避免程式中很多bug的產生。對今後的閱讀和維護也提供很多便利。重視異常丟擲和及時處理。以前我總是不喜歡處理異常,對可能出現的異常置之不理,隨它自生自滅。設定有時有意遮蔽掉異常,捕捉到異常卻不處理,也不將其丟擲。這樣雖...