SQL:按升序选择N个"最新"行

Dav*_*ver 10 sql sqlite postgresql

例如,如果我的数据如下所示:

timestamp | message
100 | hello
101 | world
102 | foo
103 | bar
104 | baz

如何按升序选择最近的三个行 - 102,103,104?

显而易见(对我来说)… LIMIT 3 ORDER BY timestamp DESC将返回正确的行,但顺序不正确.

Mar*_*ers 15

使用内部选择来选择正确的行,使用外部选择来正确排序它们:

SELECT timestamp, message
FROM
(
     SELECT *
     FROM your_table
     ORDER BY timestamp DESC
     LIMIT 3 
) T1
ORDER BY timestamp
Run Code Online (Sandbox Code Playgroud)

  • 没有; SQL没有"反向"操作.但也许您将结果拉到哪种语言呢? (2认同)