我想将整个内容从一列复制到另一列(相同的数据类型),并认为子选择是等式的一部分。
UPDATE tab01
SET column2=(SELECT column1 FROM tab01);
ERROR: more than one row returned by a subquery used as an expression
该错误完全有意义,因为我的子选择的输出有很多行。
有没有一种方法可以将所有值复制到另一个列中,而无需围绕诸如...之类的东西创建任何循环
UPDATE tab01
SET column2=(SELECT column1 FROM tab01 WHERE id=1)
WHERE ID=1;
为什么不只是这个?
我相信以上应该有效。不需要子查询,该字段应该在正在更新的同一行中可用。
(根据您的评论,您不想过滤更新的行,因此我删除了该
WHERE
子句。)