Използване на regexp_replace е по-просто:
# select regexp_replace('test1234test45abc', '[^0-9]+', '', 'g');
regexp_replace
----------------
123445
(1 row)
^
означава not
, така че всеки знак, който не в диапазона 0-9
ще бъде заменен с празен низ, ''
.
'g'
е флаг, който означава, че всички съвпадения ще бъдат заменени, а не само първото съвпадение.