在Amazon Redshift表中,我有一个字符串列,需要从中仅提取数字。目前我使用以下方法:
我尝试使用REPLACE函数,但这并不优雅。
有没有将字符串转换为ASCII码,然后进行一些操作以提取数字的想法?或者还有其他选择。 由于Redshift不支持函数并且缺少许多传统函数,所以这很困难。
编辑: 我正在尝试下面的方法,但它只返回051-a92,而我需要的是05192作为输出。我正在考虑使用子字符串等方法,但现在我只有regexp_substr可用。如何摆脱中间的任何字符。
translate(stringfield, '0123456789'||stringfield, '0123456789')
我尝试使用REPLACE函数,但这并不优雅。
有没有将字符串转换为ASCII码,然后进行一些操作以提取数字的想法?或者还有其他选择。 由于Redshift不支持函数并且缺少许多传统函数,所以这很困难。
编辑: 我正在尝试下面的方法,但它只返回051-a92,而我需要的是05192作为输出。我正在考虑使用子字符串等方法,但现在我只有regexp_substr可用。如何摆脱中间的任何字符。
select REGEXP_SUBSTR('somestring-051-a92', '[0-9]+..[0-9]+', 1)