NULL değerini içerebilen değerlerin karşılaştırılmasında yararlı olan başka bir yükleme, DISTINCT yüklemidir. Her iki sütun da eşit olmayan bir değer içeriyorsa, normal bir eşit karşılaştırma (COL1 = COL2) kullanarak iki sütunun karşılaştırılması doğru olacaktır. Her iki sütun da boşsa, sonuç yanlış olur, çünkü null hiçbir zaman başka bir değere eşit değildir, başka bir boş değer bile değildir. DISTINCT yüklemini kullanarak, boş değerler eşit kabul edilir. Bu nedenle, COL1 DEĞİLDİR, her iki sütun da null olmayan bir değer içeriyorsa ve her iki sütun da boş değer olduğunda COL2'den true olur.
Bir şey bilinmeyen bir değeri karşılaştırarak çünkü tüm karşılaştırma işlemleri yanlış olacağı anlamına gelir DB2 Null Handling
. Yani hangi karşılaştırma kullandığınız önemli değil (sadece IS NULL/IS NOT NULL işlemi işe yarar!), Yanlış olacaktır.
sorgu Eğer başka olasılık bir değer boş olup olmadığını test etmek IS NULL
kullanmaktır
SELECT *
FROM SOMESCHEMA.SOMETABLE
WHERE COALESCE(SYSDATE, TIMESTAMP_FORMAT('0001-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')) > @A
DB2 ardından "ANSI NULL" Semantik "olmalıdır doğrudur sadece ikili bir operatör var EĞER NULL ", AFAIK. –
@pst DB2 [ANSI] (http://www.dbforums.com/db2/765612-handing-null-values-db2.html#post2808106), ne demek istediniz? "NULL" _? –