Esta pergunta tem uma resposta específica do banco de dados.
Se estiver usando o SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Você pode adicionar um
CASE instrução ou use NULLIF() caso o hífen nem sempre esteja presente:SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
Ou:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Se estiver usando o MySQL, basta alterar
CHARINDEX() para LOCATE() . Eu acredito que Oracle é INSTR() e os dois primeiros parâmetros são trocados, primeiro é a string que você está procurando, depois a string que você está procurando.