我在Redshift中有一些超级数据类型的值,看起来像["a", "b", "c"]
。
我尝试编写一个类似于Athena SQL中array_join
函数的函数,它可以用分隔符将所有部分组合起来。因此,对于上面的示例,它将返回一个varchar值a, b, c
。
如果需要,我有权限创建python/sql用户定义的函数,但python UDF无法读取超级数据类型。
我尝试将数组转换为子查询表,并使用partiql进行展开,但redshift不允许我在leader上展开子查询或其他操作。我的方法是将值列成列表,而不是子查询表,然后再将其合并到一起。我成功地将列表拆分成子查询表,并将值进行分解和合并,但sql函数不允许多个命令。
我也尝试通过使用在线指南,包括一个seq_0_5视图和调整代码以处理超级函数来将SQL数组拆分成行。由于在使用不等式连接表时,redshift会使我断开连接,所以这种方法没有起作用。
让我知道我是否接近成功,但感觉好像已经走进了两个死胡同。