当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 一个Select出一个表中第N条记录的Sql代码

MSSQL
MS SQL Server 2000系统数据类型
SQL Server几个容易出错的数据类型
SQL Server 数据库中关于死锁的分析
站长必备的sql查询语言基础知识
经验分享交流:常用SQL语句技法
SQL SERVER 2000 数据库备份与还原
解决SQL SERVER 2005无法远程连接的问题
SQL Server 安装参考意见
在sqlserver2005中安装sql server 2000的示例数据库northwind
SQL Server 2000 数据库分离与附加
高级自定义查询、分页、多表联合存储过程
SQL Server数据库下教你如何做导库SQL
常用的 MSSQL Server 数据修复命令
SQL存储过程初探
SQL Server存储过程编写经验和优化
卸载SQL Server2000后不能再次安装的问题解决方法
教你安装SQL Server 2005示例数据库
MySQL 的外键与参照完整性: Part 1
SQL Server安装:"安装文件配置服务器失败"的解决方法
SQL Server 数据库文件存放在何处

MSSQL 中的 一个Select出一个表中第N条记录的Sql代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 158 ::
收藏到网摘: n/a

上周﹐被一位網友問到在sql2000中,想選取一張表的第N條記錄怎麼寫?(即如下語句select 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] in (select top  '+Cast(@intTopN  As Varchar(10))+'   [ID] from  WebSite order by [ID] asc)  order by [ID] asc'
Print @strSql
Exec(@strSql)

做完之后﹐總感覺應該會有更好的解決方案﹐可又一時想不出來!將其放在這里﹐供各位討論拍磚﹐如有最佳方案也請網友們不吝指教!