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

  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006