SQL Case Kullanımı ve Örnekleri

Share

SQL Case, bir sorgu veya ifade içinde farklı koşulların değerlendirilmesine ve farklı sonuçların üretilmesine olanak tanıyan bir yapıdır. Bu yazıda, SQL Case kullanımı hakkında ayrıntılı bilgi edineceksiniz.

1. Giriş

SQL Case, koşullu ifadelerin kullanımını ve sorgulama sonuçlarının kontrolünü sağlamak için kullanılan bir SQL yapılandırmasıdır. SQL Case, birden fazla koşulun test edilmesine ve farklı sonuçların üretilmesine izin verir.

2. SQL Case Yapısı

SQL Case, genellikle aşağıdaki yapıya sahiptir:

CASE
  WHEN koşul1 THEN sonuç1
  WHEN koşul2 THEN sonuç2
  ...
  ELSE sonuçN
END

Burada, koşul1, koşul2, vb. test edilecek koşulları belirtir. Sonuç1, sonuç2, vb. koşulu sağlayan her bir koşul için üretilecek sonucu belirtir. ELSE ifadesi, hiçbir koşulun sağlanmadığı durumlarda üretilecek olan sonucu belirtir.

3. Basit SQL Case Örneği

Aşağıdaki örnek, bir SQL Case ifadesini kullanarak bir sorgunun sonucunu kontrol eder:

SELECT
  CASE
    WHEN fiyat > 100 THEN 'pahalı'
    ELSE 'ucuz'
  END as fiyat_derecesi
FROM urunler

Bu örnekte, fiyatı 100’den büyük olan ürünler “pahalı” olarak etiketlenirken, fiyatı 100’den küçük olanlar “ucuz” olarak etiketlenir.

4. Aralıklı SQL Case Örneği

Aşağıdaki örnek, SQL Case ifadesini kullanarak bir sorgunun sonucunu kontrol eder ve fiyatı belirli aralıklara göre gruplandırır:

SELECT
  CASE
    WHEN fiyat < 50 THEN 'ucuz'
    WHEN fiyat >= 50 AND fiyat < 100 THEN 'orta'
    ELSE 'pahalı'
  END as fiyat_grubu,
  COUNT(*) as urun_sayisi
FROM urunler
GROUP BY fiyat_grubu

Bu örnekte, fiyatı 50’den küçük olan ürünler “ucuz”, fiyatı 50-100 arasındaki ürünler “orta” ve fiyatı 100’den büyük olan ürünler “pahalı” olarak etiketlenir.

5. SQL Case İçinde SQL Sorgusu Kullanımı

SQL Case ifadesi, içinde başka bir SQL sorgusu kullanacak şekilde de yapılandırılabilir. Aşağıdaki örnek, SQL Case ifadesini kullanarak tarih aralığına göre ayrı ayrı toplam satış rakamlarını hesaplar:

SELECT
  SUM(
    CASE
      WHEN satis_tarihi >= '2022-01-01' AND satis_tarihi < '2022-02-01' THEN toplam_fiyat
      ELSE 0
    END
  ) as ocak_satislari,
  SUM(
    CASE
      WHEN satis_tarihi >= '2022-02-01' AND satis_tarihi < '2022-03-01' THEN toplam_fiyat
      ELSE 0
    END
  ) as subat_satislari,
  SUM(
    CASE
      WHEN satis_tarihi >= '2022-03-01' AND satis_tarihi < '2022-04-01' THEN toplam_fiyat
      ELSE 0
    END
  ) as mart_satislari
FROM satislar

Bu örnekte, SQL Case ifadesi, sorgulanan tarih aralığına göre ayrı ayrı toplam satış rakamlarını hesaplar.

6. SQL Case Kullanımının Örnekleri

SQL Case ifadesi, SQL sorgularında çeşitli amaçlar için kullanılabilir. Aşağıda, SQL Case kullanımının bazı örnekleri verilmiştir:

  • Koşullu toplam hesaplama
  • Aralık bazlı gruplama
  • Tarih bazlı raporlama
  • Kullanıcıya özel sonuçlar üretme
  • Yeni sütunlar ekleme

7. SQL Case Kullanımının Faydaları

SQL Case ifadesinin kullanımı, SQL sorgularının daha esnek ve kontrol edilebilir olmasını sağlar. Birden fazla koşulun test edilmesine ve farklı sonuçların üretilmesine olanak tanır.

8. SQL Case Kullanımının Dezavantajları

SQL Case ifadesinin kullanımı, sorguların daha karmaşık hale gelmesine neden olabilir. Bu, sorguların okunabilirliğini ve bakımını zorlaştırabilir.

9. SQL Case ile İlgili Sık Sorulan Sorular (FAQ)

  1. SQL Case, koşullu ifadelerin kullanımını sağlar mı?
  • Evet, SQL Case koşullu ifadelerin kullanımını sağlar.
  1. SQL Case ifadesi, sorguların daha esnek olmasını sağlar mı?
  • Evet, SQL Case ifadesi, sorguların daha esnek ve kontrol edilebilir olmasını sağlar.
  1. SQL Case ifadesinin kullanımı sorguları karmaşık hale getirebilir mi?
  • Evet, SQL Case ifadesinin kullanımı, sorguların daha karmaşık hale gelmesine neden olabilir.

10. Sonuç

Bu yazıda, SQL Case kullanımı hakkında ayrıntılı bilgi edinmiş olmalısınız. SQL Case, koşullu ifadelerin kullanımını ve sorgulama sonuçlarının kontrolünü sağlamak için kullanılan bir SQL yapılandırmasıdır. SQL Case ifadesi, SQL sorgularının daha esnek ve kontrol edilebilir olmasını sağlar. Ancak, kullanımı sorguların daha karmaşık hale gelmesine neden olabilir.