- Konu sahibi
- #1
Bir sütunda NULL olan kayıtları bulmak için SELECT sorgusunun WHERE bölümünde
Veritabanınıza bir SQL sorgu aracıyla bağlanın ve sorgulamak istediğiniz tablo ile sütunun adını belirleyin. Aşağıdaki varsayımsal örnekte
Sorguyu kendi tablonuza ve sütun adlarınıza uyarlayıp çalıştırın. Örneğin tabloda Ayşe’nin e-posta değeri NULL, Ali’nin değeri
Sonuç boşsa, sorgunun erişebildiği satırlar arasında koşulu karşılayan kayıt yoktur. Bu, e-posta adreslerinin tamamının geçerli veya dolu olduğunu tek başına kanıtlamaz: boş metin gibi NULL olmayan değerler bu sorguda eşleşmez. Beklediğiniz kayıt görünmüyorsa doğru veritabanını, tabloyu ve sütunu seçtiğinizi; sorguda ek filtre varsa onun da kaydı dışlamadığını kontrol edin.
NULL olmayan kayıtları görmek için koşulu
Bazı veritabanlarında boş metin
Bu sorgu yalnızca NULL ile tam olarak boş metni arar; yalnızca boşluk karakterlerinden oluşan değerleri yakalamaz. Oracle Database gibi boş karakter dizisini NULL olarak değerlendiren sistemlerde ise bu ayrım farklıdır.
Örneğin hem e-posta hem telefon sütununu kontrol ederken, sütunlardan en az biri NULL olan kayıtlar için
Yalnızca iki sütunu da NULL olan kayıtları istiyorsanız
sütun_adı IS NULL koşulunu kullanın. NULL, bir değerin bulunmadığını veya bilinmediğini gösterir; = NULL karşılaştırmasıyla aranmaz. Sorguyu çalıştırdığınızda sonuç kümesinde ilgili sütunu NULL olan satırlar görünür.Tek bir sütunda NULL değerleri bulma
Veritabanınıza bir SQL sorgu aracıyla bağlanın ve sorgulamak istediğiniz tablo ile sütunun adını belirleyin. Aşağıdaki varsayımsal örnekte
musteriler tablosunda e-posta adresi NULL olan kayıtlar aranır:
SQL:
SELECT id, ad, eposta
FROM musteriler
WHERE eposta IS NULL;
Sorguyu kendi tablonuza ve sütun adlarınıza uyarlayıp çalıştırın. Örneğin tabloda Ayşe’nin e-posta değeri NULL, Ali’nin değeri
[email protected] ise sonuçta Ayşe’nin satırı görünür, Ali’ninki görünmez. Bu SELECT sorgusu kayıtları değiştirmez.Sonuç boşsa, sorgunun erişebildiği satırlar arasında koşulu karşılayan kayıt yoktur. Bu, e-posta adreslerinin tamamının geçerli veya dolu olduğunu tek başına kanıtlamaz: boş metin gibi NULL olmayan değerler bu sorguda eşleşmez. Beklediğiniz kayıt görünmüyorsa doğru veritabanını, tabloyu ve sütunu seçtiğinizi; sorguda ek filtre varsa onun da kaydı dışlamadığını kontrol edin.
NULL olmayan ve boş metin içeren değerleri ayırma
NULL olmayan kayıtları görmek için koşulu
WHERE eposta IS NOT NULL olarak değiştirin. Bu sonuç, değerin mutlaka kullanılabilir bir e-posta adresi olduğu anlamına gelmez.Bazı veritabanlarında boş metin
'', NULL’dan ayrı bir değerdir. Böyle bir veritabanında hem NULL hem de boş metin içeren satırları bulmak için şu koşulu kullanabilirsiniz:
SQL:
SELECT id, ad, eposta
FROM musteriler
WHERE eposta IS NULL OR eposta = '';
Bu sorgu yalnızca NULL ile tam olarak boş metni arar; yalnızca boşluk karakterlerinden oluşan değerleri yakalamaz. Oracle Database gibi boş karakter dizisini NULL olarak değerlendiren sistemlerde ise bu ayrım farklıdır.
Birden fazla sütunu kontrol etme
Örneğin hem e-posta hem telefon sütununu kontrol ederken, sütunlardan en az biri NULL olan kayıtlar için
OR kullanın:
SQL:
SELECT id, ad, eposta, telefon
FROM musteriler
WHERE eposta IS NULL OR telefon IS NULL;
Yalnızca iki sütunu da NULL olan kayıtları istiyorsanız
OR yerine AND yazın. Sonuçta görünen satırlar seçtiğiniz koşulu karşılar; hangi alanın NULL olduğunu görmek için sorgu sonucunda her iki sütunu da inceleyin.