ORKESTRA

ORKESTRA

  orkestra orkestra.com.tr
  Sohbet   İndirme Merkezi

case Komutunun Kullanımı

Cari Hesap için konuşacak olursak sadece belli değerler alabilen (Rol Tanımı, Cari Türü, Konsinye İşlemleri, Ödeme Şekli, Negatif Kontrolü vs.) bilgilerini sorgularken ise case komutu kullanılır. (Örnek bir Cari Hesap kartı açılırsa bu konu daha iyi anlaşılır)
İlgili sorgulama bu komutla düzenlenmeden çalıştırılırsa, sorgu sonucunca hücre değeri olarak “0, 1, 2, 3, 4 …” gibi değerler görünür. Halbuki nesne kartı üzerindeki değerler tamsayı değildir.

select 
cari.code as CARI_KOD,
cari.description as CARI_ACIKLAMA,
cari.defPayType as ODEME_SEKLI,
doviz.code as DOVIZ
from FinParty cari
left join cari.currency as doviz

Sorgunun çıktısı aşağıdaki gibidir.

'case' Komutu Kullanımı - 1



Yine de case komutunun kullanım şekli aşağıda anlatılacaktır.

select 
cari.code as CARI_KOD,
cari.description as CARI_ACIKLAMA,
case cari.defPayType
when 0 then 'Belirsiz'
when 1 then 'Nakit'
when 2 then 'Havale'
when 3 then 'K.Kartı'
when 4 then 'Çek'
when 5 then 'Senet'
else '?' end as ODEME_SEKLI,
doviz.code as DOVIZ
from FinParty cari
left join cari.currency as doviz
İlgili satırın kodu bu haliyle düzeltilirse sorgu sonucunda “0” gördüğü yere “Belirsiz”, “1” gördüğü yere “Nakit”, “2” gördüğü yere “Havale” ... yazacaktır. Bu Sorgunun çıktısı ise şöyle olacaktır.

'case' Komutu Kullanımı - 2

GENEL OLARAK case KOMUTUNUN KULLANIMI;

select
case (sorgulanacak değişken)
when (tamsayı1) then (değer1)
when (tamsayı2) then (değer2)
…………………………………
when (tamsayıX) then (değerX)
else (değerlerden hiçbiri değilse yazılacak değer) end as (sütun adı),
şeklindedir.

  • EK BİLGİ: Aynı şekilde “DOVIZ” sütunu için de case komutu ile boş olan değerlere “TL” yazılması sağlanabilir.
    Bunun için de “DOVIZ”in sorgulandığı satır;
    case when doviz.reference > 0 then doviz.code else 'TL' end as DOVIZ,

    olarak değiştirilirse, sorgulama Cari Firma’nın Para Birimi'ni sorgulayacak, eğer değer varsa (bunun için kayıt no -reference- ile sorgulama yapacak) o değerin “Kod”unu, değer yoksa “TL” yazacak ve “DOVIZ” sütununa getirecektir.

Bu satırla beraber sorgunun sonucu aşağıdaki gibi olur.

'case' Komutu Kullanımı - 3