在SQL中选择TOP行并获得5行结束表

时间:2013-12-07 05:20:40

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

MyTable的:

Acode | Aname 
1       ll
2       bb
3       aa
4       zz
5       ee
6       tt
7       gg
8       ss
SELECT TOP(3) * from mytable order by acode desc

结果:

Acode | Aname 
8       ss
7       gg
6       tt

但我需要输出:

Acode | Aname 
6       tt
7       gg
8       ss

SQL代码?

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

SELECT TOP(3) * from mytable order by acode

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

答案 2 :(得分:0)

如果[Accode]字段是UNIQUE KEY,则应该有效:

SELECT * FROM mytable
 在哪里Acode> (SELECT MAX(Acode) - 5 FROM mytable)