Фильтровать записи sql на основе json, хранящегося в виде строкового значения в столбце? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть таблица SQL со строками roll_num (int), имя (строка), класс (строка), отметки (строка). Столбец меток хранит строку, которая на самом деле является json для ex

{
"english":25,
"maths":30,
"science":78
}

Теперь, например, я хочу, чтобы все строки, где математические метки были больше 30. Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 30 сентября 2019

Чтобы извлечь свойства из строки JSON, используйте функцию json_extract .

Пример кода:

WITH dataset AS (
  SELECT '{
"english":25,
"maths":30,

"science":78
}'
    AS jsondata
)
SELECT
  json_extract(jsondata, '$.english') AS english,
  json_extract(jsondata, '$.maths') AS maths,
  json_extract(jsondata, '$.science') AS science
FROM dataset

Вывод:

    english maths   science
1     25     30       78

Подробнее о работе со строками json в Афине см. Следующую документацию AWS:

Извлечение данных из строки json в Афине

...