2

我想将表的第 N 行中的列的值应用于表中的所有行。仅在 PostgreSQL 中这可能吗?

4

2 回答 2

3
select *   
from <<TABLE>>  
limit 1 offset <N>  

编辑:对不起,误读了您的信息。我没有意识到你也需要更新。

UPDATE <<TABLE1>> 
SET <<COLUMN1> = (SELECT <<COLUMN2>> FROM <<TABLE2>> limit 1 offset <<N>>)

Postgres 文档

于 2013-03-21T20:21:58.870 回答
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;
于 2013-03-22T00:25:39.150 回答