问个关于sqlserver中select...order by..的问题
假设一张表中有一个时间字段time我希望select的时候按时间排序也就是orderbytime但是我不想选择这样排序出来的第一条,想选择第五条应该怎么写?...
假设一张表中有一个时间字段time
我希望select的时候按时间排序也就是order by time
但是我不想选择这样排序出来的第一条,想选择第五条
应该怎么写? 展开
我希望select的时候按时间排序也就是order by time
但是我不想选择这样排序出来的第一条,想选择第五条
应该怎么写? 展开
7个回答
展开全部
select identity(int,1,1) time(创建递增列), 其他列1,其他列2 into #t (创建临时表t,#类似关键字) from 表名 order by time desc
select * from #t where time = 5
原理:将结果集重新排列,time列存储的就是排序后的列号,所以需要第五个,只要在where子句中写time = 5就可以了。
给分呀嘿嘿
为了分,给你贴个图
select identity(int,1,1) as(得有as) rownum , branchname,fatherid into #tmp from News_Branch order by id desc
select * from #tmp where rownum = 5
展开全部
row_number 05版本+才有
TOP的方式
SELECT TOP 1 *
FROM (
SELECT TOP 5 *
FROM 表
ORDER BY time ASC
)AS T
ORDER BY time DESC
希望对你有帮助
TOP的方式
SELECT TOP 1 *
FROM (
SELECT TOP 5 *
FROM 表
ORDER BY time ASC
)AS T
ORDER BY time DESC
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有排名函数row_number:
select * from
(select *,row_number() over(order by time) orderId from tab) a
where orderId=5
你想选哪条,orderId等于那条就是了,也可以选择范围(用in,你懂的)
select * from
(select *,row_number() over(order by time) orderId from tab) a
where orderId=5
你想选哪条,orderId等于那条就是了,也可以选择范围(用in,你懂的)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我(sql_k)有两方法可供您参考:
1、建聚集索引(在time字段上,按升序排列,sql server默认在主键上建聚集索引,你把主键的聚集索引删掉,改为非聚集,然后在time上建聚集索引),之后写入下语句:
select top 1* from table where time not in(select top 4time from table )
2、不建索引的前提下:
select top 1* from table where time not in(select top 4time from table order by time)
说明:在实际项目中,以时间为条件来执行sql是很不好的一个习惯,很多时候,你想要的结果将不会得到,因为很多条记录的时间可能都是相同的值。
1、建聚集索引(在time字段上,按升序排列,sql server默认在主键上建聚集索引,你把主键的聚集索引删掉,改为非聚集,然后在time上建聚集索引),之后写入下语句:
select top 1* from table where time not in(select top 4time from table )
2、不建索引的前提下:
select top 1* from table where time not in(select top 4time from table order by time)
说明:在实际项目中,以时间为条件来执行sql是很不好的一个习惯,很多时候,你想要的结果将不会得到,因为很多条记录的时间可能都是相同的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用rs.movefirst
然后rs.move5 可以移到第五条
如还有不明白的可加入我的群来讨论:
qq裙:1-2-1-3-2-2-0-2-8
然后rs.move5 可以移到第五条
如还有不明白的可加入我的群来讨论:
qq裙:1-2-1-3-2-2-0-2-8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用游标好像 可以吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询