C#’daki if veya switch kullanımına benzerler. AdventureWorks veritabanında, Person.Contact tablosundaki kişilerin bilgilerini çekelim. Title kolonunda ‘Mr.’ yazıyosa ‘Bay’, ‘Mrs.’ yazıyorsa ‘Bayan’ olarak görüntülemek istediğimizi düşünelim.
İlk olarak switch yapısına benzer şekilde yazalım.
SELECT FirstName,LastName,
CASE Title
WHEN 'Mr.' THEN 'Bay'
WHEN 'Mrs.' THEN 'Bayan'
ELSE Title
END
FROM Person.Contact
Şimdi de if kullanımına benzer şekilde yazalım.
SELECT FirstName,LastName,
CASE
WHEN Title = 'Mr.' THEN 'Bay'
WHEN Title = 'Mrs.' THEN 'Bayan'
ELSE Title
END
FROM Person.Contact
Yukarıdaki iki kod da bizim için aynı sonucu verecektir
Şimdi de Production.Product tablosundaki ürünlerin fiyatlarını kontrol edelim. Eğer fiyat 100’den büyükse ‘Pahalı’, küçükse ‘Ucuz’ yazsın. Fiyatı 0 ise ‘Bedava’ yazsın.
SELECT ProductID,Name ,
CASE
WHEN ListPrice=0 THEN 'Bedava'
WHEN ListPrice<100 THEN 'Ucuz'
ELSE 'Pahalı'
END
FROM Production.Product
Buradaki yapı else if ile benzerdir. İlk kontrolde fiyatın 0 olduğunun kontrolünü yaptık. Eğer bu case’in içerisine girilirse, diğerlerine girmez. Dolayısı ile bu tarz kullanımlarda sıralamayı büyükten küçüğe yapmak gerekir.
0 yorum:
Yorum Gönder