【发布时间】:2011-10-04 00:46:51
【问题描述】:
我知道为什么会这样,但如果可能的话,我想找到解决办法。
例如,我的数据库中有 4 行,每行都有一个日期时间(它们都是不同的)。我想要做的是获取最新的 2 行,但使用升序排列,以便最旧的位于结果集的顶部。
我目前正在使用
SELECT TOP 2 *
FROM mytable
WHERE someid = @something
ORDER BY added DESC
这让我得到了正确的行,但顺序错误。如果我将 DESC 更改为 ASC,它会得到正确的顺序,但四行中较旧的两行。这一切对我来说都很有意义,但有没有办法解决它?
编辑:通过下面 Elliot 的回答解决。但是,如果不为派生表设置别名,则该语法将不起作用。这是结果
SELECT * FROM
(SELECT TOP 2 * FROM mytable WHERE someid = @something ORDER BY added DESC) AS tbl
ORDER BY tbl.added ASC
【问题讨论】:
标签: sql sql-server sql-order-by