我在 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/