LIKE ergebnis in THEN

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

Antworten
flavor
Beiträge: 2
Registriert: Do 20. Feb 2020, 19:12

Do 20. Feb 2020, 19:27

Guten Abend!

Ich bin firebird Neuling und habe mir Firebird 3 installiert.

Ich würde gerne das LIKE Ergebnis als THEN nutzen, da mein Programmcode am Ende ungeahnte Ausmaße annehmen würde. Leider ist mir nicht klar, wie ich das lösen kann.

Hier ein Beispiel mit Uhrzeit:

Code: Alles auswählen

    CASE      
       WHEN T1.FREIFELD5 >'00:00' AND T1.FREIFELD5 <'23:59' THEN T1.FREIFELD5
       WHEN T2.BEZEICHNUNG LIKE '%bis 09:00%' THEN '09:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 10:00%' THEN '10:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 11:00%' THEN '11:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 12:00%' THEN '12:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 13:00%' THEN '13:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 14:00%' THEN '14:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 15:00%' THEN '15:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 16:00%' THEN '16:00'
       WHEN T2.BEZEICHNUNG LIKE '%bis 17:00%' THEN '17:00'    
       ELSE '17:00'
    END as LiefBis,
Im Grunde sollte die Uhrzeit aus einem Textfeld mittels LIKE ausgelesen werden können und in ein Zeitfeld importiert werden.

Vielen Dank vorab für Ihre Hilfestellung.

Beste Grüße

flavor
bfuerchau
Beiträge: 147
Registriert: Mo 7. Mai 2018, 18:09

Fr 21. Feb 2020, 11:18

Ich habe deine Frage nicht ganz verstanden, aber man kann es u.U. vereinfachen:

case when position('bis ' in T2.BEZEICHNUNG) >= 1
then substring(T2.BEZEICHNUNG from position('bis ' in T2.BEZEICHNUNG) + 4 for 5)
else '17:00'
end

Wenn es das ist, was du meinst.
https://firebirdsql.org/refdocs/langref ... ition.html
https://firebirdsql.org/refdocs/langref ... tring.html
flavor
Beiträge: 2
Registriert: Do 20. Feb 2020, 19:12

Fr 28. Feb 2020, 07:06

bfuerchau hat geschrieben:
Fr 21. Feb 2020, 11:18
Ich habe deine Frage nicht ganz verstanden, aber man kann es u.U. vereinfachen:

case when position('bis ' in T2.BEZEICHNUNG) >= 1
then substring(T2.BEZEICHNUNG from position('bis ' in T2.BEZEICHNUNG) + 4 for 5)
else '17:00'
end

Wenn es das ist, was du meinst.
https://firebirdsql.org/refdocs/langref ... ition.html
https://firebirdsql.org/refdocs/langref ... tring.html
Eine große Hilfe! - vielen herzlichen Dank!

Das ist genau was ich benötigt habe. Du hast mir viel Ärger und Stress erspart. Abgesehen von den, den ich dadurch schon hatte.
Antworten