SQL子查询和查询组中的逆序

时间:2015-01-14 13:43:44

标签: sql subquery

写一个聊天程序,我想在DESC中显示最后5个(示例)记录顺序(新的在底部并继续在其他人处)。

我使用这一行,但确实有效:

Show.Open("SELECT q.* FROM (SELECT * FROM database ORDER BY id DESC) AS q ORDER BY q.id ASC",Cn,1);

(用i ++只选择5个记录计数)

或使用单个" SELECT * FROM数据库ORDER BY ID DESC"但是从组的第一个到最后一个加载记录)..

2 个答案:

答案 0 :(得分:0)

如果要限制行数,请在子查询中执行 - 并将其与order by相结合。

(否则子查询的ORDER BY完全没有意义。)

ANSI SQL:

SELECT *
FROM (SELECT * FROM database ORDER BY id DESC FETCH FIRST 5 ROWS ONLY)
ORDER BY id ASC

答案 1 :(得分:0)

以下查询可以解决它:

SELECT * FROM database(SELECT TOP 5 * FROM database ORDER BY id DESC)ORDER BY id ASC