Postgres:如何将元素从文本数组列复制到json列?

时间:2018-10-29 05:27:47

标签: sql json postgresql

我有一个文本数组列,现在我想创建一个新的JSON列。在JSON列中,我想根据文本数组和当前时间戳创建键值对。

示例:

文本数组{"aa", "bb", "cc"}-> JSON {"aa":"12:00", "bb":"12:00", "cc":"12:00"}

如何更新整个表格中的所有行?

1 个答案:

答案 0 :(得分:1)

假设当前列名为data,新列名为new_data,则可以执行以下操作:

update the_table
  set new_data = x.new_data
from (
  select id, jsonb_object_agg(t.k, to_char(now(), 'hh24:mi')) as new_data
  from the_table, unnest(data) as t(k)
  group by id
) x
where x.id = foo.id;

在线示例:https://rextester.com/SMBH72985