pickespik
Goto Top

LIKE in SELECT CASE

Wie kann ich einen String-Vergleich in einem SELECT realisieren?

Hallo zusammen!

Ich habe in einer Spalte (SpA) einen String stehen der wie folgt aussehen sollte: #####/* (also 5 Zeichen, einen Schrägstrich, x Zeichen). Nun möchte ich in einer anderen Spalte (SpB) eintragen, ob der String in SpA korrekt ist. Ich hatte mir das wie folgt vorgestellt (MSSQL):

SELECT CASE SpA WHEN LIKE '_ _ _ _ _/*' THEN 'true' ELSE 'false' END AS SpB FROM...

Jetzt ist ja aber ein "LIKE" im SELECT CASE Statement nicht möglich und ich komme einfach nicht darauf, wie ich das anders realisieren soll.
Ich hoffe mir kann evtl. jmd. weiterhelfen.

Content-Key: 190123

Url: https://administrator.de/contentid/190123

Printed on: April 19, 2024 at 03:04 o'clock

Member: LianenSchwinger
LianenSchwinger Aug 24, 2012 updated at 06:54:18 (UTC)
Goto Top
Hallo,

versuch mal

SELECT CASE WHEN SpA LIKE '_____/%' THEN 'true' ELSE 'false' END AS SpB   
FROM...

siehe: http://msdn.microsoft.com/de-de/library/ms181765.aspx

In SQL ist '%' der Platzhalter für beliebige Zeichen.

siehe: http://msdn.microsoft.com/de-de/library/ms179859.aspx

Gruß Jörg
Member: Pickespik
Pickespik Aug 24, 2012 at 07:25:55 (UTC)
Goto Top
Es funktioniert!
Das % anstatt * war mir bewusst, hatte ich nur in der Fragestellung nicht berücksichtigt.
Die Lösung war aber anstatt
SELECT CASE SpA WHEN LIKE ... 
zu schreiben
SELECT CASE WHEN SpA LIKE ...
Bei der ersten Variante kam immer die Fehlermeldung "'LIKE' not recognized' daher dachte ich, dass dies allgemein für das CASE Statement gilt. Aber wie gesagt, mit der zweiten Variante funktioniert es.
Vielen Dank!
Member: LianenSchwinger
LianenSchwinger Aug 24, 2012 at 07:27:16 (UTC)
Goto Top
Dann bitte die Frage als gelöst markieren face-smile