Извлечение значения из фигурной скобки SQL - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь выяснить, как извлечь значение из фигурных скобок в столбце в Prestosql.

Поле выглядит так:

rates
{"B":750}
{"B":1600}
{"B":900}

Я хочу извлечь только числовые значенияв каждой скобке.Кроме того, если я хочу разделить это на 10, а затем разделить на 20, это будет легко добавить в запрос?

Столбец rates имеет тип map(varchar, bigint).

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

Поскольку столбец rates имеет тип map(varchar, bigint). Вы можете использовать Функции карты Presto и операторы . Примеры:

SELECT rates['B'] FROM ... -- value under key "B"
SELECT map_values(rates) FROM ... -- all values in a map

Подробнее см. В документации Presto .

1 голос
/ 03 июня 2019

Используйте что-то вроде этого, где функция regexp_extract извлекает число из вашей строки, а функция cast преобразует его из строки в число, которое затем можно разделить на 10 и т. Д.

select cast(regexp_extract(rates, '\d+') as double) / 10
from my_table
...