Diese Frage hat eine datenbankspezifische Antwort.
Bei Verwendung von SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Sie können einen CASE
hinzufügen -Anweisung oder verwenden Sie NULLIF()
falls der Bindestrich nicht immer vorhanden ist:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
Oder:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Wenn Sie MySQL verwenden, ändern Sie einfach CHARINDEX()
zu LOCATE()
. Ich glaube Oracle, es ist INSTR()
und die ersten beiden Parameter werden vertauscht, zuerst ist es die Zeichenfolge, in der Sie suchen, dann die Zeichenfolge, nach der Sie suchen.