none
Sql Case When Kullanımı RRS feed

  • Soru

  • Merhaba, bir tablomda birim adına göre virgulden ayırma işlemi yapmak istiyorum. Bunun için case when kullanmak istedim. Ancak ikinci when şartındaki tanımladıktan sonra, virgulden sonra hep 3 haneyi almaktadır. 

    Yapmak istediğim şu:

    Birimi KG yazanı virgulden sonra 3 hane

    Birimi ADET  yazanı virgulden sonra 2 hane olarak sorgulamak


    select case when urun.birim='ADET' THEN CAST(satis.Miktar as DECIMAL(18,2))  when urun.birim='KG' then CAST(satis.Miktar as DECIMAL(18,3)) end as ss ,satis.Miktar,urun.birim from PRODUCTS



    15 Mayıs 2020 Cuma 15:32

Yanıtlar

  • Mantiga da ters. Sen sonuçta bir sutunda ariyorsun sonucu. O sutunun bir datatipi olur, satir basına tip farklı olmaz.

    Sana lazım olan onyuzde görsel. 1.000 ile 1.00 veya 1 ayni şey. Orada kontrol etmeye calistigina gore, degerin sayısal degeri ile degil görselliğiyle ilgileniyorsun, o zaman decimal yerine varchar'a cast edebilirsin.

    select 
    case 
    when birim='ADET' THEN CAST(CAST(Miktar as DECIMAL(18,2))  as varchar(20))
    when birim='KG' then CAST(CAST(Miktar as DECIMAL(18,3))  as varchar(20))
    end as ss ,
    Miktar,
    urun.birim from PRODUCTS urun;



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen Anıl Demirtaş 16 Mayıs 2020 Cumartesi 08:47
    15 Mayıs 2020 Cuma 16:04

Tüm Yanıtlar

  • Olacak bir şey iste, dükkan senin :)


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    15 Mayıs 2020 Cuma 15:42
  • Olacak bir şey iste, dükkan senin :)


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    Anladım hocam mantığa mı ters, sqlden çözülecek gibi değil ozaman?
    15 Mayıs 2020 Cuma 15:46
  • Mantiga da ters. Sen sonuçta bir sutunda ariyorsun sonucu. O sutunun bir datatipi olur, satir basına tip farklı olmaz.

    Sana lazım olan onyuzde görsel. 1.000 ile 1.00 veya 1 ayni şey. Orada kontrol etmeye calistigina gore, degerin sayısal degeri ile degil görselliğiyle ilgileniyorsun, o zaman decimal yerine varchar'a cast edebilirsin.

    select 
    case 
    when birim='ADET' THEN CAST(CAST(Miktar as DECIMAL(18,2))  as varchar(20))
    when birim='KG' then CAST(CAST(Miktar as DECIMAL(18,3))  as varchar(20))
    end as ss ,
    Miktar,
    urun.birim from PRODUCTS urun;



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen Anıl Demirtaş 16 Mayıs 2020 Cumartesi 08:47
    15 Mayıs 2020 Cuma 16:04
  • Mantiga da ters. Sen sonuçta bir sutunda ariyorsun sonucu. O sutunun bir datatipi olur, satir basına tip farklı olmaz.

    Sana lazım olan onyuzde görsel. 1.000 ile 1.00 veya 1 ayni şey. Orada kontrol etmeye calistigina gore, degerin sayısal degeri ile degil görselliğiyle ilgileniyorsun, o zaman decimal yerine varchar'a cast edebilirsin.

    select 
    case 
    when birim='ADET' THEN CAST(CAST(Miktar as DECIMAL(18,2))  as varchar(20))
    when birim='KG' then CAST(CAST(Miktar as DECIMAL(18,3))  as varchar(20))
    end as ss ,
    Miktar,
    urun.birim from PRODUCTS urun;



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    Anladım hocam, ayrıca bu çözüm işimi gördü teşekkür ederim
    16 Mayıs 2020 Cumartesi 08:48