当前位置: 首页 > 面试题库 >

使用desc后sql server反向顺序

孔海超
2023-03-14
问题内容

我想在使用desc后反转sql server中结果的顺序。例如:

SELECT TOP 3 * FROM table ORDER BY id DESC

返回结果:

505
504
503

但是然后我想翻转结果,使其看起来像这样:

503
504
505

我试过了

SELECT * FROM (SELECT TOP 3 * FROM table ORDER BY id DESC) ORDER BY id ASC

但这没用,有什么建议吗?


问题答案:

只要您为子查询加上别名,它就应该起作用。

SELECT q.* 
    FROM (SELECT TOP 3 * 
              FROM table 
              ORDER BY id DESC) q
    ORDER BY q.id ASC


 类似资料:
  • 问题内容: 表LIMIT 8、3中的SELECT ID 结果为8,9,10 但我需要10,9,8 你该怎么做?如果您添加“ ORDER BY ID DESC”,则得到3,2,1 问题答案: 将查询放入子选择中,然后在外部选择中颠倒顺序: 测试数据: 结果: 请注意,子查询中的ORDER BY是必需的,否则顺序是不确定的。感谢Lasse指出这一点!

  • 问题内容: 我了解我可以按如下顺序在sql查询中按顺序使用变量: 但是我也该如何在asc和desc部分中使用变量? 问题答案: 没有每个选项,它的子句例如:

  • 问题内容: 一般问题:反向流的正确方法是什么?假设我们不知道流包含什么类型的元素,反转任何流的通用方法是什么? 具体问题: IntStream提供了range方法来生成特定范围内的,现在我想将其从0切换为负数将无法正常工作,也无法使用 与IntStream我会得到这个编译器错误 错误:(191,0)ajc:sorted()类型中的方法IntStream不适用于参数(Integer::compare

  • 问题内容: 我有下表称为问题: 我只想选择每个询问者一次,如果有多个同名提问者,请选择ID最高的一个。因此,预期结果: 我使用以下查询: 我得到以下结果: 因此,它将选择遇到的第一个“鲍勃”,而不是最后一个。 谢谢 问题答案: 如果要为每一个添加最后一个,则应使用聚合函数: 之所以得到不寻常的结果,是因为MySQL使用了一个扩展名,该扩展名允许未选择列表中的项进行汇总,并且不包含在GROUP BY

  • 我有以下称为问题的表: 我想选择每个asker只一次,如果有多个asker具有相同的名称,选择最高的ID之一。所以,预期的结果: 我使用以下查询: 我得到以下结果: 它选择遇到的第一个‘鲍勃',而不是最后一个。

  • 我尝试将以下PostgreSQL查询表述为Jooq: 因此,我想用一个使用窗口函数的嵌套查询编写一个查询,并首先从内部查询开始。我走了那么远: 在orderBy命令之后,我在Jooq中不再使用DESC选项。只有像或这样的命令,还有像这样的继承命令,它返回一个SortField-object,我不能再调用所需的后续命令。