我有一个Redshift表,其中的一列是JSON数组。我想将一些数据附加到该数组中。例如:
id | col1 | col2
1 | A | {"key": []}
2 | B | {"key": []}
3 | B | {"key": ['A']}
4 | B | {"key": ['A', 'B']}
我想创建一个像UPDATE <table> SET col2 = <something> where col1 = 'B'
这样的语句,以便得到:
id | col1 | col2
1 | A | {"key": []}
2 | B | {"key": ['C']}
3 | B | {"key": ['A', 'C']}
4 | B | {"key": ['A', 'B', 'C']}
答案 0 :(得分:0)
您必须编写自己的用户定义函数(UDF),传入列的当前值和要添加的元素,然后传回结果。
不过,您实际上应该尽可能避免在Amazon Redshift中使用JSON列。他们无法利用使Redshift强大的所有功能(列,SORTKEY
等)。另外,您将遇到关系数据库的正常领域中不存在的此类问题。