arrays - 将字符串值的 Redshift super 数组转换为逗号分隔的字符串

标签 arrays type-conversion amazon-redshift user-defined-functions super

我在 Redshift 中有 super 数据类型的值,看起来像 ["a", "b", "c"]

我正在尝试在 Athena SQL 中编写类似 array_join 的函数,它将所有部分与分隔符组合在一起。因此,对于上面的示例,它将返回 a, b, c 的 varchar 值。

如果需要,我有权创建 python/sql 用户定义函数,但 python UDF 无法读取 super 数据类型。
我已经尝试将数组转换为子查询表并使用 partiql 取消嵌套,但 redshift 不允许我取消嵌套领导者或其他东西的子查询。我的方法是然后将这些值重新组合在一起。我能够创建一个表而不是子查询并成功取消嵌套/listagg 值,但 sql 函数不允许多命令。

我还尝试使用涉及 seq_0_5 View 的在线指南将 sql 数组拆分为行并将代码调整为 super 函数。这没有用,因为当我尝试使用不等式连接表时,redshift 断开了我的连接。

如果我接近了,请告诉我,但感觉我已经进入了 2 个死胡同。

最佳答案

万一有人遇到这个问题,我找到了解决方案!有一个名为 json_serialize 的 json 函数可将 super 转换为字符串。然后你只需要修剪掉括号并替换掉双引号。

关于arrays - 将字符串值的 Redshift super 数组转换为逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67827876/

相关文章:

java - 使用 while 循环搜索数组中的特定值

c++ - 我可以在 C++ 中的 const 指针上有一个指针吗?

amazon-web-services - 如何验证 Redshift 是否真的磁盘已满?

javascript - 使用 NodeJS 将 RabbitMQ 引入 AWS Redshift

javascript - 如何对具有多个属性的数组进行分组

java - 如何检查两个简单的二维数组是否具有相同的一维数组? (顺序和重复并不重要)

sql - 如何用文字显示数值

java - 枚举到字符串的转换

azure - 从 PowerBI 服务连接到私有(private) Amazon Redshift

java - 内联初始化最终变长数组