Pomocí regexp_replace je jednodušší:
# select regexp_replace('test1234test45abc', '[^0-9]+', '', 'g');
regexp_replace
----------------
123445
(1 row)
^
znamená not
, tedy jakýkoli znak, který není v rozsahu 0-9
bude nahrazeno prázdným řetězcem ''
.
'g'
je příznak, který znamená, že budou nahrazeny všechny zápasy, nejen první.