我在雪花中工作,需要从查询中的字符串中提取两组数字。
"purchase_id:12345678 charge_id:987654321"我需要在各自的列中分别提取12345678和987654321的每一组数字。到目前为止我有
REGEXP_REPLACE("purchase_id:12345678 charge_id:987654321", '[^[:digit:]]', ' '),返回12345678 987654321。我几乎没有使用regex的经验,所以一直在努力寻找解决方案,并将它们应用到我的具体案例中(或者知道我是否在正确的解决方案路径上)。
这两组数字也有不同的长度(每组7-9位数).
如果需要更多的信息,请告诉我,谢谢!
发布于 2020-08-07 18:53:05
试试看:
select
REGEXP_SUBSTR('purchase_id:123456 charge_id:987654321', '\\d+', 1, 1) as purchase_id,
REGEXP_SUBSTR('purchase_id:123456 charge_id:987654321', '\\d+', 1, 2) as charge_id
from dual发布于 2020-08-07 18:50:46
看看这是否有效:
select col
,SPLIT_PART(REGEXP_SUBSTR(col, 'purchase_id:[0-9]*'),':','2') as purchase_id
,SPLIT_PART(REGEXP_SUBSTR(col, 'charge_id:[0-9]*'),':','2') as purchase_id
from (select 'purchase_id:12345678 charge_id:987654321' as col ) https://stackoverflow.com/questions/63306837
复制相似问题