Menu
Coddy logo textTech

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 stats

Eğ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.

challenge icon

Görev

Kolay

Mevcut 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:

  • id
  • conversion: goals * 1.0 / shots, ancak shots 0 olduğunda NULL (NULLIF kullanın)
  • verdict: goals > 0 olduğunda 'win', aksi takdirde 'no goals' (IIF kullanı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 stats

IIF(cond, a, b), iki dallı bir CASE ifadesi için bir kısayoldur:

SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matches

Kendin dene

SELECT id,
       -- NULLIF kullanarak dönüşüm
       -- IIF kullanarak karar
FROM matches
ORDER BY id
quiz iconKendini test et

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