SQL CASE Bildirimi
CASE beyanı SQL dahil etmemizi sağlayan çok yönlü bir koşullu ifadedir. koşullu mantık doğrudan sorgularımızın içinde. Dinamik sorgu çıktılarını etkinleştirerek belirli koşullara dayalı olarak belirli sonuçları döndürmenize olanak tanır. İhtiyacınız olup olmadığı yeni sütunlar oluştur mevcut olanları değiştirin veya sorgularınızın çıktısını özelleştirin CASE bildirimi her şeyin üstesinden gelebilir.
Bu yazıda şunları öğreneceğiz: SQL CASE ifadesi SQL sorgularınızı geliştirmek için bu özellikten nasıl yararlanabileceğinizi gösteren net örnekler ve kullanım örnekleriyle ayrıntılı olarak.
SQL'de CASE İfadesi
-
CASEbeyanı SQL bir sorgu içinde koşullu mantık gerçekleştirmenize olanak tanıyan koşullu bir ifadedir.
- Genellikle koşullu mantığa dayalı yeni sütunlar oluşturmak, özel değerler sağlamak veya belirli koşullara göre sorgu çıktılarını kontrol etmek için kullanılır.
- Hiçbir koşul doğru değilse o zaman BAŞKA kısmı yürütülecektir. ELSE kısmı yoksa geri döner HÜKÜMSÜZ.
Sözdizimi:
SQL'de CASE İfadesini kullanmak için aşağıdaki sözdizimini kullanın:
CASE vaka_değeri
WHEN koşulu THEN sonuç1
WHEN koşulu THEN sonuç2
...
Diğer sonuç
SON DURUM;
SQL CASE İfadesi Örneği
Daha iyi anlamak için SQL'deki CASE ifadesinin bazı örneklerine bakalım.
Örneklerde kullanılacak bir demo SQL tablosu oluşturalım.
Demo SQL Veritabanı
SQL CASE deyimindeki örneklerimiz için bu örnek SQL tablosunu kullanacağız:
| Müşteri Kimliği | MüşteriAdı | Soy isim | Ülke | Yaş | Telefon |
|---|---|---|---|---|---|
| 1 | Şüphe | Takur | Hindistan | 23 | xxxxxxxxxx |
| 2 | Güvenli | Chopra | Avustralya | 21 | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Sri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Avusturya | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | İspanya | 22 | xxxxxxxxxx |
Aşağıdaki MySQL sorgusunu yazarak aynı Veritabanını sisteminizde oluşturabilirsiniz:
CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');Örnek 1: Basit CASE İfadesi
Bu örnekte CASE deyimini kullanıyoruz
Sorgu:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Çıkış:
| MüşteriAdı | Yaş | Milliyet |
|---|---|---|
| Şüphe | 23 | Hint |
| Güvenli | 21 | Yabancı |
| Naveen | 24 | Yabancı |
| Aditya | 21 | Yabancı |
| Nishant. Salchichas S.A. | 22 | Yabancı |
Örnek 2: Çoklu Koşullarda SQL CASE
Birden çok koşulu kullanarak CASE deyimine birden çok koşul ekleyebiliriz. NE ZAMAN hükümler.
Sorgu:
SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;Çıkış:
| MüşteriAdı | Yaş | Miktar Metni |
|---|---|---|
| Şüphe | 23 | Yaş 22'den büyük |
| Güvenli | 21 | Yaş 21 |
| Naveen | 24 | Yaş 22'den büyük |
| Aditya | 21 | Yaş 21 |
| Nishant. Salchichas S.A. | 22 | Yaş 30'un üzerinde |
Örnek 3: ORDER BY Cümlesiyle CASE İfadesi
MüşteriID MüşteriAdı Soyadı Ülke Yaşı ve Telefonun yer aldığı Müşteri Tablosunu ele alalım. Müşteri tablosunun verilerini kullanarak kontrol edebiliriz. SİPARİŞ VEREN CASE deyimi ile birlikte cümle.
Sorgu:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);Çıkış:
| MüşteriAdı | Ülke |
|---|---|
| Güvenli | Avustralya |
| Aditya | Avusturya |
| Nishant. Salchichas S.A. | İspanya |
| Naveen | Sri Lanka |
| Şüphe | Hindistan |
CASE Beyanı Hakkında Önemli Noktalar
- SQL CASE ifadesi, belirtilen koşullara göre farklı sorguların yürütülmesine olanak tanıyan koşullu bir ifadedir.
- Her zaman bir tane olmalı SEÇME CASE beyanında.
- END ELSE: isteğe bağlı bir bileşen ancak NE ZAMAN bu durumların CASE bildirimine dahil edilmesi gerekir.
- Herhangi bir koşullu operatörü kullanarak herhangi bir koşullu ifadede bulunabiliriz (gibi NEREDE ) NE ZAMAN ve SONRA arasında. Bu, birden çok koşullu ifadeyi kullanarak bir araya getirmeyi içerir. VE ve VEYA.
- Adreslenmemiş koşulları karşılamak için birden fazla WHEN ifadesi ve bir ELSE ifadesi ekleyebiliriz.
Çözüm
CASE deyimi, koşullu mantığı SQL sorgularına dahil etmek için sağlam bir mekanizma sağlar. Bu ifadeyi kullanarak çeşitli koşulları ele alabilir ve sorgularınızın çıktısını etkili bir şekilde özelleştirebilirsiniz. Nasıl uygulanacağını anlamak CASE ifadeler, SQL sorgularınızı daha dinamik ve farklı senaryolara daha duyarlı hale getirerek daha karmaşık veri işleme ve raporlama gerçekleştirmenize olanak tanır.