Esta pregunta tiene una respuesta específica de base de datos.
Si utiliza SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Puede agregar un CASE
sentencia o use NULLIF()
en caso de que el guión no esté siempre presente:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
O:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Si usa MySQL simplemente cambie CHARINDEX()
a LOCATE()
. Creo que Oracle es INSTR()
y los primeros dos parámetros se cambian, primero es la cadena que está buscando, luego la cadena que está buscando.