Я знаю, что эта ветка старая, и ОП не нуждается в ответе, но мне пришлось выяснить это с помощью нескольких подсказок из этой и других тем. Кажется, что все они упускают точный ответ.
Самый простой способ сделать это - TRANSLATE
все ненужные символы в один символ, затем REPLACE
этот единственный символ с пустой строкой.
DATA = 'Nowshak 7,485 m'
# removes all characters, leaving only numbers
REPLACE(TRANSLATE(TRIM(DATA), '_____________________________________________________________________________________________', ' abcdefghijklmnopqrstuvwzyaABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-_=+\|[]{};:",.<>/?'), '_', '')
=> '7485'
Чтобы сломать команду TRANSLATE
:
TRANSLATE( FIELD or String, <to characters>, <from characters> )
, например
DATA = 'Sample by John'
TRANSLATE(DATA, 'XYZ', 'abc')
=> a becomes X, b becomes Y, c becomes Z
=> 'SXmple Yy John'
** Примечание: я не могу говорить о производительности или совместимости версий. У меня версия DB2 9.x, и я новичок в этой технологии. Надеюсь, это кому-нибудь поможет.