当前位置: 代码迷 >> Sql Server >> top语句的有关问题
  详细解决方案

top语句的有关问题

热度:98   发布时间:2016-04-27 20:18:15.0
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
  相关解决方案