Verstehe Case When Ergebnis nicht

IchHH

Datenbank-Guru
Beiträge
284
Hallo,

ich habe das Problem das ist trotz sauber definierten Case When Formel anstelle des Else die ersten drei Buchstaben von "wBel_Belegtext" angezeigt bekomme. Was mich aber interessiert, warum ist das so und wo kommt das her?

Hier der Code:
Code:
,        Case When left([wBel_Belegtext],2) between '0' and right(Datepart(year,GetDate()),2) then left([wBel_Belegtext],4) --Else
            When left([wBel_Belegtext],2) not between '0' and right(Datepart(year,GetDate()),2) then
            Substring([wBel_Belegtext],PATINDEX('%1801%',[wBel_Belegtext]),4) Else
            '-' End
            as [Filter]

Bin auf Eure Antworten gespannt.
 
Werbung:
Die ersten drei Buchstaben dürften gar nicht zurück kommen, du meinst vermutlich die ersten vier. Dann greift auf jedenfall gleich die erste Bedingung und es wird nicht weiter geprüft.

Mangels Daten weiß ich nicht was left([wBel_Belegtext],2) liefert aber da BETWEEN auch mit Text umgeht und du nicht explizit in Zahlen umwandelst halte ich das für die warscheinlichste Quelle unerwarten Verhaltens. Sowieso finde ich es etwas merkwürdig nur 2-stellige Jahreszahlen abzugleichen.
 
Zurück
Oben