从PostgreSQL表中选择第N个值并在查询中使用

时间:2013-03-21 20:20:24

标签: sql postgresql

我想将表格第N行中的列值应用于表格中的所有行。这在PostgreSQL中是否可行?

2 个答案:

答案 0 :(得分:3)

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

编辑:抱歉,误读了您的消息。我没有意识到你也需要更新。

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

Postgres Docs

答案 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;
相关问题