SQL Server'da NOT IN sorgusu ile kontrol edilen veriler içinde null değer var ise arama işlevi çalışmamaktadır.
NOT IN sorgusunda bu duruma dikkat edilmelidir ve null olan veriler dikkate alınmalıdır.
NOT IN is not equivalent to NOT EXISTS when it comes to null.
When the subquery returns even one null, NOT IN will not match any rows.
Örnek:
...
where
c.IsDeleted='0'
and c.CustomerCode in ('1')
and i.RID not in (select s.IDUnitID from dbo.Sales s with(nolock) where s.IDUnitID is not null ) -- null verilerde not in sorgusu çalışmadığından hariç tutulur
...
Kaynaklar:
NOT IN vs NOT EXISTS
http://stackoverflow.com/questions/173041/not-in-vs-not-exists
NOT EXISTS vs NOT IN
http://sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/
Hiç yorum yok:
Yorum Gönder