top语句的问题
id
---
1
2
2
4
4
7
9
我要实现下列要求:
返回前两条记录,因为有两个2所以要返回1,2,2
返回后两条记录,因为有两个4所以要返回4,4,7
我现在用top 2 id 实现不了上面的要求,请高手指教我用最简单的语句实现上面的功能--等待中。。。
------解决方案--------------------Select * From 表 Where id In (Select Distinct TOP 2 id From 表)
------解决方案--------------------select * from tablename where id in (select top 2 * from (select distinct id from tablename) A)
------解决方案--------------------Select * From 表 Where id In (Select TOP 2 id From 表 group by id)
Select * From 表 Where id In (Select TOP 2 id From 表 group by id Order By id Desc )
------解决方案--------------------第一个
select top 2 with ties * from aa
order by id
第二个
select top 2 with ties * from aa
order by id desc
出来是7,4,4
如果要顺序排一下
select * from (select top 2 with ties * from aa
order by id desc) a
order by id
with ties指不去掉并列
------解决方案--------------------mafgm(雷锋) ( ) 信誉:100 Blog 加为好友 2007-07-13 17:02:41 得分: 0
存储过程的功能分页,第一页4,4,7 第二页 1,2,2
------------
這是什麼需求,存儲過程沒有參數?
如果只是查詢
--建立存儲過程
--得到前兩條
Create ProceDure SP_TEST1
As
Select * From 表 Where id In (Select Distinct TOP 2 id From 表)
GO
--調用
EXEC SP_TEST1
--建立存儲過程
--得到前兩條
Create ProceDure SP_TEST2
As
Select * From 表 Where id In (Select Distinct TOP 2 id From 表 Order By id Desc)
GO
--調用
EXEC SP_TEST2