Menu
Coddy logo textTech

CASE WHEN

Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 1 / 27.

Bir CASE ifadesi, SQL için bir if/else if/else yapısıdır. SELECT (veya ORDER BY ya da WHERE) içinde yer alır ve her satır için bir değer üretir.

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           WHEN score >= 60 THEN 'C'
           ELSE 'F'
       END AS grade
FROM students

Her bir WHEN yukarıdan aşağıya kontrol edilir; ilk eşleşme kazanır. ELSE isteğe bağlıdır. O olmadan, eşleşmeyen satırlar NULL değerini alır.

Daima END ile bitirin ve AS ile sütuna bir isim verin.

challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>employees</strong>: <strong>id</strong>, <strong>name</strong>, <strong>department</strong>, <strong>salary</strong>

Her çalışan için name, department ve şu şekilde oluşturulmuş bir tier sütunu döndürün:

  • salary >= 150000 olduğunda 'partner' (herhangi bir departman)
  • department = 'eng' ve salary >= 100000 olduğunda 'senior'
  • salary >= 60000 olduğunda 'mid'
  • Aksi takdirde 'entry'

salary değerine göre azalan düzende sıralayın. WHEN dallarının sırasının önemli olduğunu unutmayın: ilk eşleşen kazanır.

Kopya kağıdı

CASE, SELECT içinde if/else gibi davranarak her satır için bir değer üretir:

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           ELSE 'F'
       END AS grade
FROM students
  • Koşullar yukarıdan aşağıya kontrol edilir; ilk eşleşen kazanır
  • ELSE isteğe bağlıdır — o olmadan, eşleşmeyen satırlar NULL döndürür
  • Her zaman END ile kapatın; sütunu adlandırmak için AS kullanın

Kendin dene

SELECT name, department,
       -- salary ve department'ı birleştiren birden fazla WHEN dalına sahip tier
FROM employees
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