SORU
3 Aralık 2009, PERŞEMBE


Neden NULL = NULL SQL server yanlış değerlendirmesi yapar

Eğer where yan tümcesi nullParam=NULL varsa SQL server, her zaman yanlış olarak değerlendirilir. Bu mantığa aykırı olduğunu ve bana birçok hataları neden oldu. IS NULL IS NOT NULL anahtar bunu yapmak için doğru yol olduğunu anlıyorum. Ama neden SQL server bu şekilde davranıyor?

CEVAP
3 Aralık 2009, PERŞEMBE


Boş olarak "" bu durumda (ya da "yok"). bilinmeyen düşünüyorum Bu durumda, birini ya da bunların değerini bilmiyorsun çünkü eşit olduğunu söylemek, bunu yapamazsın. Eşit olduklarını söylemek değerleri bilmiyorsun çünkü, null=true (false veya null, sisteminize bağlı olarak) sonucunu null. Bu davranış, SQL-92, ANSI Standardı tanımlanmıştır.

EDİT: Bu ansi_nulls senin ayarına bağlıdır. eğer ANSI_NULLS kapalı varsa, bu gerçek olarak değerlendirir. Örneği çalıştırmak için aşağıdaki kodu...

set ansi_nulls off

if null = null
	print 'true'
else
	print 'false'


set ansi_nulls ON

if null = null
	print 'true'
else
	print 'false'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • Google Analytics

    Google Analy

    25 ŞUBAT 2008