如何在sql server找出最后几笔的最大值

来源:百度知道 编辑:UC知道 时间:2024/06/27 18:45:02
我目前有一表格table1, 内含栏位no,price.
我利用(select max(A.price) from (select top 5 * from table1 order by no desc) A), 可找出最后五笔资料中, 价格最高者.
但是,如果我想找出不含最后一笔的倒数五笔资料中,价格最高者,请问sql语法应该怎麼改, 才能不含最后一笔呢?
(亦即,当最后一个人出价时,我想告诉他,在他前面五个人的最高价为何,但不能包括他本人的出价)
请高手指点了,谢谢!

在你的语句基础上稍作改动即可。

select max(A.price)
from
(
select top 5 * from table1
where no<>(select max(no) from table1)
order by no desc
) A

希望对你有帮助!

如果no是实时的(即根据出价的顺序而添加的),可以查找no>1,no<=6即可
而如果不是实时的
可以
select nom=Identity(int,1,1),* Into #temptable from table1
给table1重新给定序列(构建一个临时的表temptable),再查询
select * from #temptable where nom>1 and nom<=6
然后求这5条记录的最大值即可
#temptable最后可以删除

(select max(A.price) from (select top 5 * from table1 order by no desc) A)
你这个逻辑没有问题,如果要除去最后的一笔,逻辑有些问题。
建议你加入一个变量:当前用户名或者id。

在你的sql里加入一个条件 username<>'XXXX'。
例如子句改成:
select top 5 * from table1 where username<>'XXXX' order by no desc