从花括号 SQL 中提取值
Extracting value from curly bracket SQL
我正在尝试弄清楚如何从 Prestosql 中的列中的大括号中提取值。
字段看起来像,
rates
{"B":750}
{"B":1600}
{"B":900}
我只想提取每个括号中的数值。
另外,如果我想将其除以 10,然后除以 20,是否可以轻松将其添加到查询中?
rates
列的类型为 map(varchar, bigint)
。
使用类似这样的方法,其中 regexp_extract
函数从字符串中提取数字,cast
函数将其从字符串转换为数字,然后您可以继续除以 10 等等
select cast(regexp_extract(rates, '\d+') as double) / 10
from my_table
因为 rates
列的类型是 map(varchar, bigint)
。您可以在其上使用 Presto Map Functions and Operators。示例:
SELECT rates['B'] FROM ... -- value under key "B"
SELECT map_values(rates) FROM ... -- all values in a map
在 Presto documentation 中查看更多信息。
我正在尝试弄清楚如何从 Prestosql 中的列中的大括号中提取值。
字段看起来像,
rates
{"B":750}
{"B":1600}
{"B":900}
我只想提取每个括号中的数值。 另外,如果我想将其除以 10,然后除以 20,是否可以轻松将其添加到查询中?
rates
列的类型为 map(varchar, bigint)
。
使用类似这样的方法,其中 regexp_extract
函数从字符串中提取数字,cast
函数将其从字符串转换为数字,然后您可以继续除以 10 等等
select cast(regexp_extract(rates, '\d+') as double) / 10
from my_table
因为 rates
列的类型是 map(varchar, bigint)
。您可以在其上使用 Presto Map Functions and Operators。示例:
SELECT rates['B'] FROM ... -- value under key "B"
SELECT map_values(rates) FROM ... -- all values in a map
在 Presto documentation 中查看更多信息。