【发布时间】:2019-10-18 10:01:33
【问题描述】:
我正在尝试弄清楚如何从 Prestosql 的列中的大括号中提取值。
字段看起来像,
rates
{"B":750}
{"B":1600}
{"B":900}
我只想提取每个括号中的数值。 另外,如果我想将它除以 10 然后除以 20 会很容易添加到查询中吗?
rates 列的类型为 map(varchar, bigint)。
【问题讨论】:
-
要提取数字,您可以使用正则表达式,例如:SELECT regexp_extract('{"B":750}', '\d+')。检查此链接以供参考:prestodb.github.io/docs/current/functions/regexp.html
-
rates列的类型是什么?是 varchar、JSON 还是其他? (如果这是一些复杂的表达式,您可以使用select typeof(rates) from ... limit 1进行检查) -
@PiotrFindeisen 谢谢!是varchar,bigint类型是什么意思?
-
我不确定我是否理解。也许在您的问题中包含
select typeof(rates) from ... limit 1的完整输出。 -
@Chris90 感谢您提供类型信息。我在此基础上添加了一个答案。如果您有更具体的需求,请在问题中提供示例预期输出。
标签: sql data-science data-analysis presto trino