NULL Değerler için COALESCE
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 3 / 27.
COALESCE, NULL olmayan ilk bağımsız değişkeni döndürür:
COALESCE(nickname, first_name, 'Anonymous')Soldan sağa doğru okur ve ilk null olmayan değerde durur. Bir sorguda varsayılan bir değer sağlamanın en temiz yoludur; CASE ifadesine gerek kalmaz.
Yaygın kullanım alanları:
- Bir
LEFT JOINişlemindenNULLyerine0gösterin:COALESCE(SUM(amount), 0) - Boş olmayan ilk isteğe bağlı alanı seçin:
COALESCE(mobile, home, work)
Görev
KolayMevcut tablolar ve sütunlar:
<strong>users</strong>:<strong>id</strong>,<strong>display_name</strong>,<strong>email</strong><strong>orders</strong>:<strong>user_id</strong>,<strong>amount</strong>
Her kullanıcı için şu bilgileri içeren bir satır döndürün:
idlabel: varsadisplay_name, yoksaemail, o da yoksa'unknown'total_spent: kullanıcının siparişamountdeğerlerinin toplamı; siparişi olmayan kullanıcılar0(NULLdeğil) göstermelidir
id sütununa göre sıralayın. İpucu: users tablosundan orders tablosuna bir LEFT JOIN ve COALESCE(SUM(...), 0) kullanımı eksik satırları halleder.
Kopya kağıdı
COALESCE, ilk NULL olmayan argümanı döndürür:
COALESCE(nickname, first_name, 'Anonymous')Yaygın kullanım alanları:
- Yedek görüntüleme değeri:
COALESCE(mobile, home, work) LEFT JOINtoplamlarından (aggregates) gelenNULLdeğerini değiştirme:COALESCE(SUM(amount), 0)
Kendin dene
SELECT u.id,
-- COALESCE aracılığıyla label
-- COALESCE(SUM(...), 0) aracılığıyla total_spent
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temellerin Ötesi bölümündeki tüm dersler
2String Fonksiyonları
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE ve TRIM|| ile BirleştirmeÖzet - Faturalar