Mysql Sorgu Hatası

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    CASE sentaksın hatalı.

     

     

    CASE '17-05-2017'
        WHEN '' THEN
            NULL
        WHEN LENGTH('17-05-2017') < 6 THEN
            NULL
        ELSE
            CONVERT( STR_TO_DATE('17-05-2017', '%e-%c-%Y'), CHAR(50) )
    END

    şeklinde yazarsan CASE'den hemen sonra bir değer söz konusu olduğu için bunu her satırda karşılaştırmak ister
    ilk whende koşulu ('17-05-2017') = ('') olarak kabul eder ki burada herhangi birşey yok.
    ikinci whende koşulu (
    '17-05-2017') = (LENGTH('17-05-2017') < 6) olarak kabul etmek ister ki bu kullanım hatalıdır.

    Bunu çözmenin iki yolu var. Ya IF kullanacaksın yada CASE'ten sonra herhangi bir değer vermeden her WHEN'in ön tanımlı koşulu olmamasını sağlayacaksın. Şöyle:

    CASE
        WHEN '17-05-2017' = '' THEN
            NULL
        WHEN LENGTH('17-05-2017') < 6 THEN
            NULL
        ELSE
            CONVERT( STR_TO_DATE('17-05-2017', '%e-%c-%Y'), CHAR(50) )
    END

    6 gün önce açmışsın sıkıntı etmiş olmalı, gemiş olsun.


    Sadece bi imza..
Toplam Hit: 2509 Toplam Mesaj: 12
query