求真知

azfailx 2012-01-01 11:22:53
我写了这个
sql="select top 3 * from zm_news where fid = 22 order by ord asc,id desc"
查询的是前三条记录

那么 我要查第4到第六条记录要怎么写??
跪求大虾解谜!!
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2012-01-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 azfailx 的回复:]
我写了这个
sql="select top 3 * from zm_news where fid = 22 order by ord asc,id desc"
查询的是前三条记录

那么 我要查第4到第六条记录要怎么写??
跪求大虾解谜!!
[/Quote]

select top 3 * from
(select top 6 * from zm_news where fid = 22 order by ord asc,id desc) t
order by ord,id

select top 3 * from
(select top 6 * from zm_news where fid = 22 order by ord asc,id desc) t
order by id,ord
勿勿 2012-01-01
  • 打赏
  • 举报
回复
select   * from (select *,rn=row_number()over(order by ord asc,id desc) zm_news where fid = 22  ) a  where rn  between 4 and 6
美到心痛 2012-01-01
  • 打赏
  • 举报
回复

SELECT TOP (6-4+1) * FROM zm_news AS a WHERE Not Exists
(Select * From (Select Top (4-1) * From TABLE order by ord asc,id desc ) b
Where b.ord=a.ord and b.id=a.id )
Order by ord asc,id desc
叶子 2012-01-01
  • 打赏
  • 举报
回复

;with maco as
(
select row_number() over (order by ord asc,id desc) as rid,
* from zm_news where fid = 22
)
select * from maco where rid between 4 and 6
Limpire 2012-01-01
  • 打赏
  • 举报
回复
select * from
(select rn=row_number()over(order by ord asc,id desc), * from zm_news) t
where rn between 4 and 6

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧