0Pricing
SQL Academy · Ders

COALESCE ve NULLIF

Varsayılan değerler sağlayın ve sıfıra bölmeden kaçının.

COALESCE ve NULLIF, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Eksik Değerleri Değiştirme

NULL değerlerini algılamak işin yarısıdır — çoğu zaman bunları makul bir varsayılanla değiştirmek istersiniz. SQL'in COALESCE işlevi tam olarak bunu yapar.

Belirli bir NULL'ı bilerek oluşturmak istediğinizde (örneğin sıfıra bölmeden kaçınmak için) ise NULLIF kullanacağınız araçtır. Bu derste her ikisi de ele alınır.

-- Show a placeholder when phone is missing
SELECT name, COALESCE(phone, 'no phone on file') AS phone
FROM customers;

COALESCE Nasıl Çalışır

COALESCE, istediğiniz sayıda parametre alır ve soldan sağa doğru ilk NULL olmayan parametreyi döndürür.

Tüm parametreler NULL ise sonuç NULL olur. Bunu "bunu kullan, yoksa şunu kullan, en sonunda da şu yedek değeri kullan" şeklinde düşünebilirsiniz.

SELECT
  COALESCE(NULL, NULL, 'third', 'fourth') AS a, -- 'third'
  COALESCE(NULL, 42)                       AS b, -- 42
  COALESCE(NULL, NULL)                     AS c; -- NULL

Yedek Değerleri Zincirleme

COALESCE çok sayıda parametre kabul ettiği için bir tercih zinciri oluşturabilirsiniz.

Örneğin önce cep telefonu numarasını, sonra iş telefonu numarasını, ardından ev telefonu numarasını ve son olarak doğrudan yazılmış bir mesajı tercih edebilirsiniz.

SELECT name,
  COALESCE(mobile, work_phone, home_phone, 'unreachable') AS best_contact
FROM contacts;

Hesaplamalarda Varsayılan Değerler

NULL aritmetik işlemlerde yayılır; bu nedenle tek bir eksik değer tüm hesabın sonucunu NULL'a dönüştürebilir. NULL olabilen girdiyi COALESCE içine alarak yerine nötr bir değer koyun.

Burada eksik indirim 0 olarak kabul edilir.

-- Without COALESCE, a NULL discount makes total NULL
SELECT
  price - COALESCE(discount, 0) AS total
FROM line_items;

COALESCE Tür Kuralları

COALESCE parametrelerinin tümü uyumlu bir türde olmalıdır. PostgreSQL ortak bir tür seçer; bunu yapamazsa hata verir.

Örneğin tür dönüştürme yapmadan bir sayıyla serbest metin dizesini karıştıramazsınız — yedek değer de sayı olmalıdır.

-- OK: both integers
SELECT COALESCE(score, 0) FROM results;

-- Cast when mixing types
SELECT COALESCE(score::text, 'n/a') FROM results;

NULLIF ile Tanışın

NULLIF(a, b), mantık olarak COALESCE'in tersini yapar: a = b olduğunda NULL, aksi hâlde a döndürür.

Belirli bir "özel işaretçi" değerini gerçek bir NULL'a dönüştürmenin kısa bir yoludur.

SELECT
  NULLIF(5, 5)   AS a,  -- NULL (equal)
  NULLIF(5, 9)   AS b,  -- 5    (not equal)
  NULLIF('', '') AS c;  -- NULL (treat empty string as missing)

Sıfıra Bölme İçin NULLIF

NULLIF'in en yaygın kullanımı bölme hatalarından kaçınmaktır. 0'a bölmek hata verir, ancak NULL'a bölmek basitçe NULL sonucunu verir.

Bölüneni NULLIF(divisor, 0) içine alarak çökmeyi güvenli bir NULL sonucuna dönüştürebilirsiniz.

-- If total_visits is 0, this would error.
-- NULLIF turns the divisor into NULL, giving a NULL ratio instead.
SELECT
  conversions / NULLIF(total_visits, 0) AS conversion_rate
FROM campaigns;

NULLIF ve COALESCE'yi Birleştirme

NULLIF ve COALESCE iyi bir ikili oluşturur. Özel işaretçi değerini NULL'a dönüştürmek için NULLIF kullanın, ardından bu NULL'a uygun bir varsayılan değer vermek için COALESCE kullanın.

Burada boş dize biçimindeki not, doğrudan yazılmış "—" metnine dönüşür.

-- Treat '' as missing, then display a dash
SELECT
  COALESCE(NULLIF(note, ''), '—') AS display_note
FROM tickets;

Güvenli Ortalama Oranı

Sağlam bir analiz sorgusu oluşturmak için bunları bir arada kullanın: NULLIF ile sıfıra bölmeye karşı koruma sağlayın, ardından COALESCE ile NULL yerine 0 gösterin.

Sorgu hiçbir zaman hata vermez ve her zaman düzgün bir sayı gösterir.

SELECT
  product_id,
  COALESCE(returns / NULLIF(orders, 0), 0) AS return_rate
FROM product_stats;

COALESCE ve IS NULL Karşılaştırması

İkisi de NULL değerleri ele alır, ancak amaçları farklıdır:

  • IS NULL / IS NOT NULL — bir koşuldaki eksik değerleri denetler.
  • COALESCE — çıktıda bir değerin yerine başka bir değer koyar.

Sonuçları biçimlendirirken COALESCE kullanın, filtreleme yaparken ise IS NULL kullanın.

-- Filter (IS NULL)
SELECT * FROM customers WHERE phone IS NULL;

-- Substitute (COALESCE)
SELECT COALESCE(phone, 'unknown') FROM customers;

Hepsini Birleştirme

Bu ders için hızlı başvuru:

  • COALESCE(a, b, c) → ilk NULL olmayan değer.
  • NULLIF(a, b) → eşitse NULL, aksi hâlde a.
  • Sıfıra bölmeyi önlemek için NULLIF(divisor, 0) kullanın.
  • Hesaplamalarda ve çıktıda varsayılan değerler sağlamak için COALESCE kullanın.
SELECT
  COALESCE(nickname, full_name, 'guest')       AS display_name,
  revenue / NULLIF(orders, 0)                  AS avg_order_value
FROM accounts;

Hızlı Kontrol

amount değeri 0 olduğunda NULLIF(amount, 0) ne döndürür?

Özet

Artık COALESCE kullanarak NULL değerlerini varsayılanlarla değiştirebilir (ilk NULL olmayan değer kullanılır) ve NULLIF ile bilinçli olarak NULL değerleri oluşturabilirsiniz (iki değer eşleştiğinde NULL döner).

Sıfıra bölme modelini ve güvenli, temiz bir çıktı için her iki işlevi zincirlemeyi gördünüz. Sırada NULL değerlerinin COUNT, SUM ve JOIN işlemleri içinde nasıl davrandığını inceleyeceksiniz.

SELECT
  COALESCE(NULLIF(comment, ''), 'no comment') AS comment,
  total / NULLIF(qty, 0)                       AS unit_price
FROM invoices;

Sıkça Sorulan Sorular

“COALESCE ve NULLIF” dersi ücretsiz mi?

Evet — “COALESCE ve NULLIF” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“COALESCE ve NULLIF” dersinde ne öğreneceğim?

Varsayılan değerler sağlayın ve sıfıra bölmeden kaçının. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“COALESCE ve NULLIF” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. NULL Gerçekte Ne Anlama Gelir
  2. IS NULL ve IS NOT NULL
  3. COALESCE ve NULLIF
  4. Toplamlarda ve Birleştirmelerde NULL
← SQL Academy Sayfasına Dön