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.