表裡存在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的產生。對今後的閱讀和維護也提供很多便利。重視異常丟擲和及時處理。以前我總是不喜歡處理異常,對可能出現的異常置之不理,隨它自生自滅。設定有時有意遮蔽掉異常,捕捉到異常卻不處理,也不將其丟擲。這樣雖...