NOT IN
Bazı durumlarda NULL
değerler döndüren bir alt sorgu içeren bir cümle ile (Postgres ve Informix için) bir sorgu yaptım , bu cümlenin (ve tüm sorgunun) hiçbir şey döndürememesine neden oldu.
Bunu anlamanın en iyi yolu nedir? NULL
Değeri olmayan bir şey olarak düşündüm ve bu nedenle sorgunun başarısız olmasını beklemiyordum, ama açıkçası düşünmenin doğru yolu bu değildi NULL
.
x <> NULL
çözüm olarakFALSE
görüyorsanız,NOT (x <> NULL)
değerlendirmeyi beklersinizTRUE
ve öyle olmaz. Her ikisi de değerlendirirUNKNOWN
. İşin püf noktası, bir satırın yalnızcaWHERE
((varsa) fıkrası olarak değerlendirilirse seçilmesidirTRUE
- fıkra yaFALSE
da olarak değerlendirilirse bir satır atlanır)UNKNOWN
. Bu davranış (genel olarak veNOT IN
özellikle de belirteç için) SQL standardı tarafından zorunludur.