CASE WHEN

CASE WHEN

DBSql Server da kullanışlı bir fonksiyon olan Case fonksiyonu ile ilgili küçük bir örnek yapacağım. tblmusteri adinda bir table`ımız olduğunu ve bunun da id  (auotincrement), musterino , isim , adress ve il kolonlarının bulunduğunu düşünelim, il kolonu integer türünde ve biz bu kolonun varchar yani string olarak değerini görmek istiyoruz. İşte burda Case bize çok uygun bir yapı sağlar.

 select * from tblmusteri  WITH (NOLOCK)    dediğimizde bizim karşımıza gelecek data aşağıdaki gibidir.

1 1001 Erkan Sezer Kadıkoy 34

7 1002 Mehmet Dal Ermenek 70

3 1003 Aynur Guney Ermenek 70

4 1004 Muhammet Ali Hancer Cekmekoy 34

5 1005 Yavuz Selim Keresteci Goztepe 34

Peki ben bu il kolonunu nasil string yaparım?  Select ifademi aşağıdaki gibi değiştirirsem bana ilisim isminde bir kolon daha gelecektir ve burda da il isimlerinin yazdığını göreceğiz. Peki select ifademde ne yaptığımı kısaca anlatacak olursak; gelen il değerine bakıldı ve bu değer 34 ise İstanbul , 70 ise Karaman olarak ilisim kolonuna getirildi. Bu yapı çok kullanışlıdır ve bize çoğu zaman çok kısa çözüm yolları sunar. Select ifademiz ve gelen yeni data ağağıdaki gibidir.

SELECT *

CASE il 

WHEN `34` THEN `İstanbul` 

WHEN `70` THEN `Karaman` END 

AS ilisim

FROM tblmusteri WITH (NOLOCK)   

1 1001   Erkan Sezer   Kadıkoy   34  İstanbul
7 1002   Mehmet Dal   Ermenek   70   Karaman
3 1003   Aynur Guney   Ermenek   70   Karaman
4 1004   Muhammet Ali Hancer   Cekmekoy   34   İstanbul
5 1005   Yavuz Selim Keresteci   Goztepe   34   İstanbul

Leave a Reply

Your email address will not be published. Required fields are marked *