我想将表格第N行中的列值应用于表格中的所有行。这在PostgreSQL中是否可行?
答案 0 :(得分:3)
select *
from <<TABLE>>
limit 1 offset <N>
编辑:抱歉,误读了您的消息。我没有意识到你也需要更新。
UPDATE <<TABLE1>>
SET <<COLUMN1> = (SELECT <<COLUMN2>> FROM <<TABLE2>> limit 1 offset <<N>>)
答案 1 :(得分:0)
如果您没有写入权限,则可以使用窗口功能执行某些操作。这可能会被简化或扩展(特别是它如何抓取'n',具体取决于用例)。不幸的是,你不能在窗口函数中使用窗口函数。
create temp table test(val numeric);
insert into test select * from generate_series(101,200,1);
select max(case when rn = n then val else null end) over () as nthvalue, val
from(
select row_number() over (order by val) as rn, val, n
from (select val, 9 as n from test) as added_n) as obtained_rownum;