Google Analytics İzleme

20 Eylül 2016

T-Sql NOT IN sorgusunda NULL değer durumu

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: