Questa domanda ha una risposta specifica per il database.
Se si utilizza SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Puoi aggiungere un CASE
istruzione o utilizzare NULLIF()
nel caso in cui il trattino non sia sempre presente:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
Oppure:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Se usi MySQL, cambia semplicemente CHARINDEX()
a LOCATE()
. Credo che Oracle sia INSTR()
e i primi due parametri vengono scambiati, prima è la stringa in cui stai cercando, quindi la stringa che stai cercando.