Преобразуйте супер массив строковых значений с красным смещением в строку, разделенную запятыми

#arrays #type-conversion #amazon-redshift #user-defined-functions #super

Вопрос:

У меня есть значения в красном смещении, которые являются супер типами данных и выглядят так ["a", "b", "c"] .

Я пытаюсь написать функцию, как array_join в Athena SQL, где она объединяет все части с разделителем. Таким образом, в приведенном выше примере он вернет значение varchar a, b, c .

У меня есть разрешение на создание пользовательских функций python/sql, если это необходимо, но UDFS python не могут считываться в супер типах данных.
Я попытался преобразовать массив в таблицу подзапросов и использовать partiql для отмены, но красное смещение не позволяет мне отменить подзапрос на лидере или что-то в этом роде. Мой подход заключается в том, чтобы затем снова перечислить значения вместе. Я смог создать таблицу вместо подзапроса и успешно отменить/перечислить значения, но функции sql не допускают использование нескольких команд.

Я также попытался разделить массив sql на строки, используя онлайн-руководства, включающие представление seq_0_5, и настроив код на суперфункции. Это не сработало, потому что красное смещение отключает меня, когда я пытаюсь объединить таблицы с помощью неравенства.

Дайте мне знать, если я приблизлюсь, но мне кажется, что я зашел в 2 тупика.

Ответ №1:

На случай, если кто-нибудь столкнется с этой проблемой, я нашел решение! Существует функция json json_serialize , которая преобразует супер в строку. Затем вам просто нужно обрезать скобки и, возможно, заменить двойные кавычки.