【问题标题】:Select TOP row in SQL and get 5 rows of end table在SQL中选择TOP行,得到5行结束表
【发布时间】:2013-12-07 05:20:39
【问题描述】:

Mytable:

代码 |一个名字 1 升 2BB 3个氨基酸 4 兹 5个 6吨 7 克 8 秒
SELECT TOP(3) * from mytable order by acode desc

结果:

代码 |一个名字 8 秒 7 克 6吨

但我需要输出:

代码 |一个名字 6吨 7 克 8 秒

SQL 代码?

【问题讨论】:

  • SELECT * FROM (SELECT TOP(3) * from mytable order by acode desc) a ORDER BY accode

标签: c# sql sql-server sql-server-2008 c#-4.0


【解决方案1】:

不知道这是否是最好的方法,您可能需要进行嵌套选择。

SELECT * FROM (
    SELECT TOP(3) * from mytable order by acode desc
) a ORDER BY accode

【讨论】:

    【解决方案2】:

    试试

    SELECT TOP(3) * from mytable order by acode asc
    

    SELECT TOP(3) * from mytable order by acode
    

    因为 ORDER BY 子句默认以升序模式排序,这正是您所需要的。

    【讨论】:

      【解决方案3】:

      如果 [Accode] 字段是 UNIQUE KEY,这应该可以:

      从我的表中选择 *
      WHERE Acode > (SELECT MAX(Acode) - 5 FROM mytable)

      【讨论】:

      • 同意,仅适用于 UNIQUE 连续值,但考虑到这种有大量行的情况,效率要高得多。
      猜你喜欢
      • 2015-08-03
      • 2016-10-06
      • 2015-04-17
      • 1970-01-01
      • 2021-10-09
      • 2018-01-19
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多