SORU
24 EYLÜL 2008, ÇARŞAMBA


Fıkra DEĞİL ve NULL değerleri

Bu sorun, farklı kayıtları var ne zaman geldi aynı sanıyordum ne önemi sorgularını* not in *4 bir kısıtlama ve diğer bir left join kullanarak. not in kısıtlaması tablo sorgu 0 kayıt sayısını döndürmek için neden olan bir null değeri (hatalı veri) vardı. Sanırım neden ama bana yardımcı tam olarak kavram kavrama kullanabileceğimi anlıyorum.

Bu sadece devlet için neden Bir sorgu dönmek ama B yok bir sonucu mu?

A: select 'true' where 3 in (1, 2, 3, null)
B: select 'true' where 3 not in (1, 2, null)

Bu SQL Server 2005'te oldu. Ben de set ansi_nulls off B arama sonuç vermesine yol açan buldu.

CEVAP
24 EYLÜL 2008, ÇARŞAMBA


Sorgu aynıdır:

select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null

3 = 3 gerçek olduğundan, sonuç almak.

Sorgu B ile aynı

select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null

ansi_nulls, 3 <> null üzerinde olduğunda yüklem BİLİNMEYEN veren çok BİLİNMİYOR ve herhangi bir satır bulamazsın.

ansi_nulls 3 <> null yüklem doğru olarak değerlendirilen çok doğru, ve bir satır olsun.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • SunsetTrance

    SunsetTrance

    20 EYLÜL 2008
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009