arrays - 用其他表的值填充数组的值

标签 arrays postgresql error-handling

我在 postgresql 中有一个表(my_table2),其中包含一个数组类型的列。我希望 my_table1 的列 val1 的值成为数组 (array_col) 的第一个元素,而 val2 的值成为 array_col 的第二个元素。我想出了这个查询:

update my_table2
set array_col=array[
    (
    select val1 from my_table1)
    , (select val2 from my_table1)
    ]

但运行时出现错误:
错误:用作表达式的子查询返回多行 有办法实现吗?

最佳答案

您的子查询 select val1 from my_table1select val2 from my_table1 返回多行。如果您要为每个元素指定一个子查询,那么它只能返回一个元素。

根据您所拥有的...您可能会看到更像是的东西:

将两者连接在一起?

更新 my_table2 set array_col=array(从 my_table1 中选择 val1)||array(从 my_table1 中选择 val2)

每个人都拿一个?

更新 my_table2 set array_col=array[(从 my_table1 限制 1 中选择 val1),(从 my_table1 限制 1 中选择 val2)]

关于arrays - 用其他表的值填充数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481401/

相关文章:

java - JSON - 在 Java 中使用 JSONArray 解析文档

PostgreSQL\d 命令 : Any way to "select" only one column?

python - Django ORM : Equivalent of SQL `NOT IN` ? `exclude`和 `Q`对象不起作用

java - 处理任何错误时如何防止我的应用崩溃?

postgresql - PostgreSQL View 错误处理

error-handling - Codeigniter 3 Postgresql驱动程序错误代码

c++ - 将文件读入结构数组,然后排序

python - 用数组重写代码

C 如何打开压缩包中文档的命令

postgresql - 如何在 Postgres 中实现 excel 的 SMALL 和 LARGE 函数?