我需要将一个列customerId
中的所有数据复制到同一表中的另一个新列(customerIds
-格式不同)。有一个名为customerId
的列,其类型为bigint
,我需要将此列中的数据复制到数据类型为bigint[]
的customerIds
。
有没有办法在postgres sql中做到这一点?我知道如何将数据从一列复制到另一列,这是在相同的格式,但不知道如何做到这一点时,新的列是数组。
同一表和列的格式相同。
UPDATE table_name
SET customerId = customerIds
2条答案
按热度按时间agxfikkp1#
由于每个客户只有一个id,因此只需更新数组的第一个元素
第一章:"中国银行业的发展"
| 客户ID|客户ID|
| - -|- -|
| 一个|{1}已安装|
| 2个|第二章|
| 三个|第三章|
| 四个|第四章|
| 五个|第五章|
fiddle
ru9i0ody2#
也许这会有所帮助:
使用cte作为(选择4::BIGINT作为数值)从cte中选择array_agg(cte.数值);
对于您问题:
UPDATE数据表名称SET客户识别码=数组_agg(客户识别码)
答案只是一个想法,未经测试