1 Nisan 2011 Cuma

SQL Case When Kullanımı

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

Untitled

Ş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.

Untitled2



0 yorum:

Yorum Gönder