我能否使用lua对在postgresql中由"row_number()"函数创建的列进行排序?

我有一个查询语句,其中包含对row_number()函数的调用,该函数在技术上为我返回每行的唯一ID。

SELECT f.*, row_number() as row_id OVER(ORDER BY f.name)
FROM widgets f

如果我可以以某种方式使用row_id来对表进行排序,那就太酷了。我现在想尝试使用row_number来进行排序,如下所示:

table.sort(mytable, function(a,b) return a.row_id < b.row_id end)

我只是想避免循环遍历结果以添加唯一ID并对其进行排序,但也许这是不可能的。

点赞
用户1144035
用户1144035

我不知道如何在 Lua 中表达这个,但在 Postgres 中你可以按照列别名进行排序。Postgres 查询语句如下:

SELECT f.*, row_number() OVER (ORDER BY f.name) as row_id
FROM widgets f
ORDER BY row_id;

如果您不想按 f.name 进行排序,可能说明您有重复的列。请注意,在 SQL 中排序不能保证稳定。也就是说,重复的名称可能按不同的顺序排列。如果您有办法使排序稳定(即通过唯一标识每行),则可以在 order by 中使用这些列。

2014-06-14 12:34:28