Mysql Sorgu Hatası
-
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) )
END6 gün önce açmışsın sıkıntı etmiş olmalı, gemiş olsun.