我正在尝试获得前N个记录(当按某些列X排序时),但结果设置的顺序相反.以下陈述不正确,但可能演示了我所追求的内容:
SELECT * FROM (SELECT TOP 10 * FROM FooTable ORDER BY X DESC) ORDER BY X ASC
Run Code Online (Sandbox Code Playgroud)
例如,列X可以是ID或时间戳; 我想要最新的10条记录,但希望它们按照时间顺序返回.
dav*_*vek 10
SELECT * FROM
(SELECT TOP 10 * FROM FooTable ORDER BY X DESC) as myAlias
ORDER BY X ASC
Run Code Online (Sandbox Code Playgroud)
即你的子查询可能需要一个别名,但除此之外它应该有效.
尝试
SELECT * FROM
(SELECT TOP 10 * FROM FooTable ORDER BY X DESC) temp --alias
ORDER BY X
Run Code Online (Sandbox Code Playgroud)
或使用公用表表达式 (CTE)
WITH Temp AS (SELECT TOP 10 * FROM FooTable ORDER BY X DESC)
SELECT * FROM temp
ORDER BY X
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26344 次 |
| 最近记录: |