我想知道如何根据对某些字段(例如 ISO
代码)进行排序来向表(例如 country
)添加字段?
我搜索了一下,发现了 following question ,但是解决方案是基于MySQL的。我尝试使用 Postgres 9.3 中的解决方案,但在 :=
上出现语法错误。我尝试的是:
SELECT l.*,
@curRow := @curRow + 1 AS row_number
FROM country l ORDER BY ISO
JOIN (SELECT @curRow := 0) r;
如何使其适应 Postgres?
最佳答案
您可以使用row_number()
window function :
SELECT country.*, ROW_NUMBER() OVER (ORDER BY iso)
FROM country
ORDER BY iso
关于sql - 如何在 PostgreSQL 中添加基于排序顺序的序号 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27582994/