按订单

时间:2017-01-05 13:34:40

标签: sql postgresql

我有一个带有两列PK的表。我想添加一个新列nid,根据特定的ORDER BY对每行(1,2,3 ...)进行编号。

所以:

x | y | z
3   7   2
1   4   1

当z编号时,ASC变为:

x | y | z | nid
3   7   2 | 2
1   4   1 | 1

我可以在SQL(Postgres 9.4)中执行此操作吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您可以使用row_number()

select x, y, z, row_number() over (order by z) as nid
from t;