Sql Server 2012 – Choose
Sql server 2012 ile beraberinde gelen bir diğer özellik ise Choose fonksiyonudur. Choose fonksiyonu parametre olarak gönderilen iki veya daha fazla değer arasından belirtilen indexteki değerin döndürülmesini sağlar. Sql server 2012 öncesi sürümlerde Case When ile de aynı işlemler yapılabilir. Choose fonksiyonu bizi Case When yapısının karmaşıklığından kurtarıyor. Konuyu daha iyi anlayabilmek için küçük bir örnek yapalım. Ben AdventureWorks veritabanında bulunan Production.Product tablosundaki ProductSubcategoryID kolonundaki değere göre ilgili kategorinin adını yazdıracağım. Sizde case when yapısını kullanacağınız durumlarda Choose fonksiyonunu tercih edebilirsiniz.
Kullanımı:
CHOOSE(index,d1,d2,[n])
[sql]
SELECT
ProductNumber,
ProductSubcategoryID,
CHOOSE(ProductSubcategoryID,’Mountain Bikes’,’Road Bikes’,’Touring Bikes’,’Handlebars’,’Bottom Brackets’) as [Choose]
FROM Production.Product WHERE ProductSubcategoryID BETWEEN 1 AND 5
[/sql]
Not: Örnek olması açısından kategori açıklamalarını Choose ile oluşturdum. Tabi ki kategorinin açıklamasını join yapıları ile çekmemiz gerekiyor.