Presto: извлечь последний элемент из json - PullRequest
0 голосов
/ 15 января 2020

У меня есть массив после того, как я преобразовал поле json и получил информацию, относящуюся к его службе. Служба принимает несколько значений в строке json, и я получаю все эти значения в выводе. Я хотел бы сохранить последний случай, хотя.

Вывод, который я получил, был:

[Free Assessment, Synthetic Oil Change]

Я хочу оставить только

Synthetic Oil Change 

В качестве вывода я попытался использовать substr с помощью ",", но некоторая информация в форме

[Free Assessment, Synthetic Oil Change at 15,000 miles]

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

1 Ответ

1 голос
/ 15 января 2020

Чтобы получить последний элемент из JSON, который содержит массив, вам нужно сначала получить индекс последнего элемента с помощью функции json_array_length и получить элемент с помощью json_array_get. Более подробную информацию см. По адресу: https://prestosql.io/docs/current/functions/json.html

presto> SELECT json_array_get(x, json_array_length(x) - 1) 
        FROM (VALUES JSON'["first value", "second value"]') t(x);
    _col0
--------------
 second value
(1 row)

Приведенный выше пример был выполнен с помощью Presto 326.

...