Merhabalar;
Bir çogumuz sql sorgularında dönen kayıtlar üzerinde seçim işlemi
yapma gereği duymuşuzdur. Cinsiyet alanına kadın / erkek yazdırmak yerine litaratürde gösterilen şekliyle .T. / .F. yada 0/1 gibi kodlamalar kullanırız. 0 ise kadın 1 ise erkek olarak göster dememiz lazım. Bunun en pratik yolu yazdıgımız programlama dilini kullanmadan sql in kendine yaptırmaktır. Sorgumuzu görünce ne demek istedigimi daha iyi anlayacaksınız.
Hadi ozaman buyrun.
Genel yapısı :
SELECT KolonBaslıgı =
CASE SecilecekALAN
WHEN 'D' THEN 'DÜŞÜNCE'
WHEN 'E' THEN 'EGLENCE'
WHEN 'R' THEN 'RENK'
WHEN 'Y' THEN 'YAŞAM'
WHEN 'A' THEN 'AMAÇ'
ELSE 'Yoksa Neye Yarar Dünya '
END, DigerAlanlar
FROM TabloAdı
Genel kullanımını bu şekilde gösterdikten sonra isterseniz birkaç farklı örnek yapalım.
Müşteri tiplerini kodlara ayırdık. Hangi müşteri hangi statüde bilmek istiyoruz ve yazılım aşamasında verdiğimiz kodların hangisinin hangi manada oldugunu göstermek istiyoruz.
SELECT MUSTIPI=
CASE TIPI
WHEN '1' THEN 'ÜST DÜZEY'
WHEN '2' THEN 'ORTA DÜZEY'
WHEN '3' THEN 'ALT DÜZEY'
ELSE 'BELİRSİZ MÜŞTERİ TİPİ'
END,ADI As MUSTERI
FROM Musteri
Burda yaptıgımız işlemde sorgu çektik müşterilerin tamamı için müşteri kodlarına baktık 1 ise bunu yaz 2 ise bunu yaz.
SONUÇ:
MUSTIPI MUSTERI
---------- -----------
'ORTA DÜZEY' FATİH
'ORTA DÜZEY' MEHMET
'ÜST DÜZEY' SEDA
'ORTA DÜZEY' EDA
Diğer bir kullanım şekli;
SELECT CASE
WHEN BAKIYE=0 THEN 'RİSK YOK'
WHEN BAKIYE>1 AND BAKIYE <'2' THEN 'DÜŞÜK RİSK'
WHEN BAKIYE>=2 AND BAKIYE<'3' THEN 'ORTA SEVİYELİ RİSK'
WHEN BAKIYE>3 OR BAKIYE=3 THEN 'YÜKSEK RİSK'
WHEN BAKIYE BETWEEN 4 AND 10 THEN 'ÇOK YÜKSEK RİSK'
END, m.SOYADI, ym.BAKIYE
FROM Musteri AS m INNER JOIN
YMusteri AS ym ON m.ID = ym.M_ID
Başka bir örnek kullanabileceginiz bi çok komut var...
SELECT
CASE
WHEN TIPI IS NULL THEN 'HERHANGI MUSTERİ TIPI'
END AS TIP .........
SQL komutlarını ne kadar etkin biçimde kullanırsanız yazacagınız program o kadar hızlı ve zahmetsiz olur. SQL bize bir çok nimet sunmakta gerisi sizin ihtiyaçlarınıza ve yeteneklerinize kalmış.
Bir sonra ki yazıda görüşmek üzere...
7 yorum
Çok teşekkürler...
Cevaplaher daim unutulma potansiyeli olan çok gerekli sql kullanımı.
Cevaplaher kodtan sonra sonuç ekranın göstersemişsiniz daha iyi olacakmış. ama yinede elinize sağlık
CevaplaTesekkur ederim.
CevaplaTesekkur ederim.
Cevaplakod tan akrostiş iyiymiş :)
CevaplaTeşekkürler,
Cevapla(DERYA Yoksa Neye Yarar Dünya...)
Yorum Gönder