例如,如果我的数据是这样的:SQL:选择N“最近”行升序
timestamp | message 100 | hello 101 | world 102 | foo 103 | bar 104 | baz
如何选择最近的三个行 - 102,103,104 - 升序订购?
显然(对我)… LIMIT 3 ORDER BY timestamp DESC
将返回正确的行,但顺序不正确。
例如,如果我的数据是这样的:SQL:选择N“最近”行升序
timestamp | message 100 | hello 101 | world 102 | foo 103 | bar 104 | baz
如何选择最近的三个行 - 102,103,104 - 升序订购?
显然(对我)… LIMIT 3 ORDER BY timestamp DESC
将返回正确的行,但顺序不正确。
使用一个内部的选择,选择正确的行和外选择给他们正确排序:
SELECT timestamp, message
FROM
(
SELECT *
FROM your_table
ORDER BY timestamp DESC
LIMIT 3
) T1
ORDER BY timestamp
Hrm ...我没有一个运行的postgres方便的实例,但SQLite的EXPLAIN'表明这将导致一个排序(如果该列未被索引,则为两个)。有没有什么办法可以避免这种冗余排序? –
否; SQL没有“反向”操作。但是,也许你把语言拉到结果呢? –
@David:等等,你是否在排序*三条记录时感到烦恼? ;) –
您要求在标题降序排列行,并在问题,这是_ascending_秩序你在找什么? – jsvk
D'oh!谢谢。我想要提升。固定。 –