PostgreSQL - 使用自动增量列创建视图

cod*_*000 8 postgresql view postgresql-9.2

我有一个 PostgreSQL 表,我需要创建一个带有新列的视图。此列需要是从 1 开始到 N 的自动增量列。

这是否可以在不影响遗留数据结构的原始模式的情况下完成?

小智 13

您可以使用row_number,最简单的方法是添加一个

row_number() OVER (PARTITION BY true)
Run Code Online (Sandbox Code Playgroud)

场进入视野。您需要 PARTITION BY 并且使用“true”表达式是最高效的方式(不需要像 Fabrizio Mazzoni 的回答那样进行排序)。


Fab*_*oni 9

正如@deszo 所说的用户 OVER()

create view foo as (
    select row_number() over (order by field), field, field2, field3 from bar
)
Run Code Online (Sandbox Code Playgroud)

  • 使用窗口函数时,转换运算符的放置可能很棘手:`row_number() over (order by field)::int` (3认同)