【发布时间】:2018-01-21 19:24:55
【问题描述】:
我有一个这样的字符串存储在 Redshift 表列 (event_attribute_value) 中:
[{shipment_id:2409777178,sku:1223XLMNPQR,container_scannable_id:blahblah,order_id:3KNCGS6W,quantity_received:3}]
我想从使用 SQL 正则表达式接收的数量中提取“3”。 'quantity_received' 也可以出现在字符串中的任何位置。
select
event_attribute_value,
regexp_substr(event_attribute_value, '/quantity_received:(\d+)/') as quantity
from receive_events limit 10;
这就是我试图从字符串中获取 'quantity_received:3' 的方法,但它返回 NULL
【问题讨论】:
-
改用
JSON解析器。 -
什么类型的正则表达式? JS?四氯乙烯?你能提供你尝试过但失败的代码吗?
-
我正在尝试从 Redshift 表的列中提取它。我还没有考虑到 Redshift 有 JSON 解析函数,但它似乎是这样的,所以试一试。
-
你不能查询相关列而不是整个表行吗?
-
更新问题。 JSON 解析器无法工作,因为它不是有效的 JSON。
标签: sql regex amazon-redshift