考虑一下:
UPDATE dest
SET dest_col = (SELECT s.src_col FROM source s
WHERE s.name = 'abc'
ORDER BY random() LIMIT 1 OFFSET 0);
我的目标:在每一行中设置dest.dest_col
一个从子查询匹配的所有值中随机选择的值。
为此,我添加了ORDER BY random() LIMIT 1
. 但这通过选择一次随机值,然后将其设置到dest.dest_col
.
我尝试添加OFFSET 0
(建议在其他答案中作为防止 Postgres 优化子查询的一种方式),但这似乎没有任何效果。
另请注意,我需要它才能在 GCP 上运行的 PostgreSQL 上工作。