一个Select出一个表中第N条记录的SQL代码
上周,被一位网友问到在SQL2000中,想选取一张表的第N条记录怎么写?(即如下语句s
elect ID,Name,Title from WebSite order by ID desc 如何改写以达到目的?)
我当时直接就给他回了:
select ID,Name,Title from WebSite where ID= N
最后这位老兄说如果ID是连续的话就可以,如果有记录删除的话,ID不连续了,就不行
了,至此才明白他的真正意思。想了一下,给出了如下答案:
-- select top 1 [ID],[Name,Title from WebSite
-- where not [ID] in (select top 11 [ID] from WebSite order by [ID] asc)
order by [ID] asc
Declare @strSql Varchar(200),@intTopN int
Set @intTopN = 11
Set @strSql = 'select top 1 [ID],[Name,Title from WebSite where not [ID] i
n (select top '+Cast(@intTopN As Varchar(10))+' [ID] from WebSite order
by [ID] asc) order by [ID] asc'
Print @strSql
Exec(@strSql)
做完之后,总感觉应该会有更好的解决方案,可又一时想不出来!将其放在这里,供各
位讨论,如有最佳方案也请网友们不吝赐教!
一个Select出一个表中第N条记录的SQL代码
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- SQLServer2005数据库还原到SQLServer2000(2007-11-20 4:29:0)
- MSSQL Server中DATETIME类型数据的处理(2007-11-18 9:6:4)
- mssql转移到word(2007-11-15 1:42:20)
- SQL Server 字符串函数一览(2007-11-13 1:32:23)
- join 方式(2007-11-11 8:59:26)
- 使用MSSQL自定义函数过滤字符串(2007-11-1 1:19:3)
- 数据库设计的折衷(2007-10-14 9:4:0)
- 通过ADO.NET实现事务处理(2007-10-14 1:12:38)
- 一些Sql Server实用操作小技巧(2007-9-21 3:45:46)
- sql server 如何复制数据库结构(2007-9-10 3:28:20)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。