MySQL’de CASE WHEN Kullanımı: Koşullara Bağlı Olarak Farklı Değerler Döndürme

13 Nisan 2024 5 mins to read
Share

MySQL’de CASE WHEN yapısını kullanarak koşullara bağlı olarak farklı değerler döndürmeyi öğrenin. Bu makalede, CASE WHEN yapısının nasıl kullanılacağını keşfedin.

Giriş

MySQL, ilişkisel veritabanı yönetim sistemlerinin en popülerlerinden biridir ve geniş bir kullanıcı kitlesi tarafından tercih edilmektedir. Veritabanı sorguları sırasında, bazen belirli koşullara bağlı olarak farklı değerler döndürmek gerekebilir. Bu tür durumlarda, MySQL’in CASE WHEN yapısı oldukça kullanışlıdır. Bu makalede, MySQL’de “CASE WHEN Kullanımı: Koşullara Bağlı Olarak Farklı Değerler Döndürme” başlığı altında koşullara bağlı olarak farklı değerlerin nasıl döndürüleceğini inceleyeceğiz.

CASE WHEN Yapısı Nedir?

MySQL’de CASE WHEN yapısı, belirli koşullara göre farklı değerler döndürmek için kullanılan bir yapıdır. Bu yapı, genellikle SELECT sorgularında veya UPDATE işlemlerinde kullanılır. CASE WHEN yapısı, if-else ifadesine benzer bir şekilde çalışır ve bir veya daha fazla koşulun sağlanıp sağlanmadığını kontrol ederek sonuçları döndürür.

CASE WHEN yapısının temel kullanımı şu şekildedir:

SELECT 
    CASE 
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE default_result
    END 
    AS column_alias
FROM 
    your_table;

Yukarıdaki örnekte, “condition1” ve “condition2” gibi koşulların sağlanıp sağlanmadığı kontrol edilir. İlk sağlanan koşulun sonucu olan “result1” veya “result2” gibi değerler döndürülür. Hiçbir koşul sağlanmazsa, “default_result” olarak belirtilen varsayılan değer döndürülür.

CASE WHEN Kullanımı Örneği

CASE WHEN Kullanımı

CASE WHEN yapısını kullanarak koşullara bağlı olarak farklı değerler döndürmek oldukça basittir. Bu yapı, özellikle büyük ve karmaşık sorgularda büyük avantaj sağlar. CASE WHEN, sadece SELECT sorgularında değil, aynı zamanda UPDATE, DELETE ve diğer SQL işlemlerinde de kullanılabilir. Bu yapının en yaygın kullanıldığı yerler arasında raporlama, veri dönüşümü ve özel iş kurallarını uygulama işlemleri yer alır.

Bir veritabanı yöneticisi olarak, CASE WHEN yapısını veritabanı sorgularınızda kullanmak, verileri daha dinamik bir şekilde işlemenize olanak tanır. Özellikle, büyük veri setlerinde, belirli koşullar altında farklı sonuçlar döndürmek gerektiğinde bu yapı oldukça kullanışlı hale gelir. Örneğin, bir müşteri tablosunda belirli harcama miktarlarına göre farklı indirim oranları uygulamak için CASE WHEN yapısını kullanabilirsiniz.

Örnekler

  • Örnek olarak, bir öğrencinin notunu alalım ve bu nota göre performansını değerlendirelim:
SELECT 
    student_name,
    CASE 
        WHEN grade >= 90 THEN 'AA'
        WHEN grade >= 80 THEN 'BA'
        WHEN grade >= 70 THEN 'BB'
        WHEN grade >= 60 THEN 'CB'
        WHEN grade >= 50 THEN 'CC'
        ELSE 'FF'
    END 
    AS performance
FROM 
    students;

Bu örnekte, öğrencinin notuna göre performansı değerlendirilir ve ilgili harf notu döndürülür. CASE WHEN yapısı, farklı not aralıklarına göre uygun harf notunu döndürmek için kullanılır.

  • Bir müşterinin alışveriş tutarına göre indirim uygulayalım:
SELECT 
    customer_name,
    total_amount,
    CASE 
        WHEN total_amount >= 1000 THEN total_amount * 0.1
        WHEN total_amount >= 500 THEN total_amount * 0.05
        ELSE total_amount
    END 
    AS discounted_amount
FROM 
    orders;

Bu sorgu, müşterinin alışveriş tutarına göre farklı indirim oranlarını uygular. CASE WHEN yapısı, müşterinin harcama miktarına göre uygun indirim oranını belirler ve toplam tutarı günceller.

CASE WHEN ile Çoklu Koşullar

CASE WHEN yapısının esnekliği, birden fazla koşulun kontrol edilmesine olanak tanır. Örneğin, birden fazla koşulun aynı anda sağlanması gerektiğinde, AND operatörü ile bu koşullar birleştirilebilir. Bu, daha karmaşık sorguların gerçekleştirilmesine olanak tanır. Ayrıca, OR operatörü ile farklı koşullar arasında seçim yapılabilir.

Örneğin, bir çalışan tablosunda hem maaş hem de pozisyona göre bonus hesaplamak isteyebilirsiniz. Bu durumda, CASE WHEN yapısını kullanarak, maaş aralığına ve pozisyona bağlı olarak farklı bonus oranları uygulayabilirsiniz.

Sonuç

Bu makalede, MySQL’de CASE WHEN yapısını kullanarak koşullara bağlı olarak farklı değerlerin nasıl döndürüleceğini öğrendik. “MySQL’de CASE WHEN Kullanımı: Koşullara Bağlı Olarak Farklı Değerler Döndürme” başlığı altında ele aldığımız bu yapı, veritabanı sorgularınızı daha esnek hale getirir ve çeşitli koşullara göre farklı sonuçlar elde etmenizi sağlar. CASE WHEN yapısını kullanarak, veritabanı işlemlerinizde daha fazla kontrol sağlayabilir ve istediğiniz sonuçları elde edebilirsiniz.

Leave a comment