#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
, которая преобразует супер в строку. Затем вам просто нужно обрезать скобки и, возможно, заменить двойные кавычки.