我尝试使用REGEXP_SUBSTR Sql函数从20个字符的字符串中提取所有数字,如下所示。
select
REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 1)
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 2)
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 3)
...
...
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 20)
from tbl;
但当试图将其转换为bigint/decimal或任何数字数据类型时
Invalid input syntax for type numeric
或
Invalid digit, Value '2', Pos 0, Type: Long
等等
我错过了什么吗?REGEXP_SUBSTR串联的典型输出为1056220044022等。在Redshift数据仓库上运行的查询和REGEXP_REPLACE/TRANSLATE尚未出现。