NULLIF ve IIF
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 4 / 27.
İki tane daha koşullu yardımcı, her ikisi de küçük ve kullanışlı.
NULLIF(a, b), a = b olduğunda NULL, aksi takdirde a değerini döndürür. Klasik kullanımı sıfıra bölme hatasından kaçınmaktır:
SELECT total / NULLIF(count, 0) AS average
FROM statsEğer count sıfır ise, bir hata yerine NULL alırız.
IIF(cond, a, b), CASE WHEN cond THEN a ELSE b END ifadesi için iki dallı bir kısayoldur. Seçim ikili olduğunda buna başvurun; daha fazla dal olduğunda CASE yapısına başvurun.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>matches</strong>:<strong>id</strong>,<strong>shots</strong>,<strong>goals</strong>
Her maç için şunları döndürün:
idconversion:goals * 1.0 / shots, ancakshots0olduğundaNULL(NULLIFkullanın)verdict:goals > 0olduğunda'win', aksi takdirde'no goals'(IIFkullanın)
id sütununa göre sıralayın.
Kopya kağıdı
NULLIF(a, b), a = b olduğunda NULL döndürür, aksi takdirde a döndürür. Sıfıra bölme hatasından kaçınmak için kullanışlıdır:
SELECT total / NULLIF(count, 0) AS average
FROM statsIIF(cond, a, b), iki dallı bir CASE ifadesi için bir kısayoldur:
SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matchesKendin dene
SELECT id,
-- NULLIF kullanarak dönüşüm
-- IIF kullanarak karar
FROM matches
ORDER BY 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