例如,如果我的數據是這樣的: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!謝謝。我想要提升。固定。 –