Получить массив из jsonb в функции plpgsql

xyz int [];

abc jsonb := ["1150,2021-02-22 13:24:04.587018+02,a39b5ab0-5812-4f.",
              "1151,2021-02-22 12:36:13.282165+02,a98f9ab0-5611-4f.",
              "1153,2021-02-22 12:36:13.282165+02,e36c3506-791b-4c."];

как на основе abc получить такой массив xyz ?
[1150, 1151, 1153]

Ответы (1 шт):

Автор решения: Мелкий

Если предположить, что необходимо получить данные до запятой из каждой строки JSON-массива, то так:

xyz := array(
    select left(el, position(',' in el)-1) 
    from jsonb_array_elements_text(abc) as el
);
→ Ссылка