Tato otázka má odpověď specifickou pro databázi.
Pokud používáte SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Můžete přidat CASE
nebo použijte NULLIF()
v případě, že spojovník není vždy přítomen:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
Nebo:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Pokud používáte MySQL, stačí změnit CHARINDEX()
na LOCATE()
. Věřím, že Oracle je INSTR()
a první dva parametry se přepnou, nejprve je to řetězec, ve kterém hledáte, potom řetězec, který hledáte.