[攒分贴]每日小知识-sql获取第n行

jinjazz 2008-07-23 10:51:19
加精
如何在一个没有主键的表中获取第n行数据,在sql2005中可以用row_number,但是必须指定排序列,否则你就不得不用select into来过渡到临时表并增加一个排序字段。
用游标的fetch absolute语句可以获取绝对行数下的某行数据,测试代码如下:

set nocount on
--建立测试环境并插入数据,并且表没有主键
create table test(id int ,name varchar(10))
insert into test select 999,'jinjazz'
insert into test select 888,'csdn'
insert into test select 999,'sqlserver'

--通过游标获取绝对行数
declare myCursor scroll cursor for select * from test
open myCursor
fetch absolute 3 from myCursor
close myCursor
deallocate myCursor

--删除测试环境
drop table test
set nocount off
/*--
id name
----------- ----------
999 sqlserver
--*/


--------------------------------------------------------
很多人发蛋贴攒分,我也发发,但是有1分,发了也不能白发,我会随口说个技术基础点,不只局限于代码。
高手可以忽略本贴
...全文
3677 120 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
120 条回复
切换为时间正序
请发表友善的回复…
发表回复
单线程加锁 2012-08-31
  • 打赏
  • 举报
回复
回贴 接分
piaoliuwang7248 2012-08-03
  • 打赏
  • 举报
回复
强啊 哈哈哈哈哈哈哈
z401945675 2012-08-03
  • 打赏
  • 举报
回复
学习了
hbdn520 2012-06-15
  • 打赏
  • 举报
回复
学习下了
yojinlin 2012-03-25
  • 打赏
  • 举报
回复
學習了。
larissa523 2012-03-25
  • 打赏
  • 举报
回复
学习了。
rcsglydm 2012-03-21
  • 打赏
  • 举报
回复
好,学习了
丁小贝 2011-11-16
  • 打赏
  • 举报
回复
顶下顶下顶下
buzhidao945 2011-09-05
  • 打赏
  • 举报
回复
学习学习
wxl19900320 2011-05-06
  • 打赏
  • 举报
回复
顶一下 个人感觉很好
tomtodayyesterday 2011-05-04
  • 打赏
  • 举报
回复
--通过游标获取绝对行数
declare myCursor scroll cursor for select * from test
open myCursor
fetch absolute 3 from myCursor
close myCursor
deallocate myCursor
看不懂
tomtodayyesterday 2011-05-04
  • 打赏
  • 举报
回复
学习学习!!!
youdesou 2011-04-28
  • 打赏
  • 举报
回复
很强大
sc5925229 2011-04-26
  • 打赏
  • 举报
回复
一天学一点
zwk_9 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 jinjazz 的回复:]
如何在一个没有主键的表中获取第n行数据,在sql2005中可以用row_number,但是必须指定排序列,否则你就不得不用select into来过渡到临时表并增加一个排序字段。
[/Quote]

select id, name from
(
select row_number() over(order by id) as rowNum, * from test
)AA
where AA.rowNum = 3

这样不是照样行吗?
winlyf 2011-03-29
  • 打赏
  • 举报
回复
学习。收藏了。
小不点 2011-03-13
  • 打赏
  • 举报
回复
写的挺好。
evolve724 2010-12-31
  • 打赏
  • 举报
回复
不错..
楼下两的代码都对id进行排序了 但是id不是关键字段 会重复的
都测了 只有楼主的代码取到正确值
Sapphire2010 2010-12-22
  • 打赏
  • 举报
回复
学习学习!
  • 打赏
  • 举报
回复
学习了
加载更多回复(98)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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