用sql语句查询从N条到M条的记录
2008-05-24 22:04
239 查看
//说明:下面的代码是我转一位高手的,希望对大家能有所收或。。
//再声明一下:如果表名与字段名在整个过程中不再变化,则可以用以下模式:
//=================================
@tableName as varchar(20)='leaveWord',--表名
@fieldList as varchar(1000)='*',--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
==================================//
CREATE PROCEDURE p_GetBetweenData
@tableName as varchar(20),--表名
@fieldList as varchar(1000),--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
AS
Declare @strSql as Varchar(4000) --定义sql字符串
--将原表数据复制到临时表
begin
set @strSql='SELECT TOP '+@endIndex+' * INTO tempTB FROM '+@tableName
--print @strSql
exec(@strSql)
end
--修改临时表结构
begin
ALTER TABLE tempTB ADD _ID int IDENTITY
end
--查询出指定的记录,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改
begin
set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex
--print @strSql
exec(@strSql )
end
--删除临时表
begin
drop table tempTB
end
GO
//下面这种方法。。也可以。。只是在对临时表进行操作时有点不一样。。
CREATE PROCEDURE p_GetBetweenData
@tableName as varchar(20),--表名
@fieldList as varchar(1000),--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
AS
Declare @strSql as Varchar(4000) --定义sql字符串
--将原表数据复制到临时表
begin
set @strSql='SELECT TOP '+@endIndex+' 0 AS _ID,* INTO tempTB FROM '+@tableName
--print @strSql
exec(@strSql)
end
--更新列编号,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改
begin
Declare @i int
set @i=0
update tempTB set @i=@i+1,_ID=@i
end
--查询出指定的记录
begin
set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex
--print @strSql
exec(@strSql )
end
--删除临时表
--begin
--drop table tempTB
--end
GO
//再声明一下:如果表名与字段名在整个过程中不再变化,则可以用以下模式:
//=================================
@tableName as varchar(20)='leaveWord',--表名
@fieldList as varchar(1000)='*',--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
==================================//
CREATE PROCEDURE p_GetBetweenData
@tableName as varchar(20),--表名
@fieldList as varchar(1000),--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
AS
Declare @strSql as Varchar(4000) --定义sql字符串
--将原表数据复制到临时表
begin
set @strSql='SELECT TOP '+@endIndex+' * INTO tempTB FROM '+@tableName
--print @strSql
exec(@strSql)
end
--修改临时表结构
begin
ALTER TABLE tempTB ADD _ID int IDENTITY
end
--查询出指定的记录,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改
begin
set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex
--print @strSql
exec(@strSql )
end
--删除临时表
begin
drop table tempTB
end
GO
//下面这种方法。。也可以。。只是在对临时表进行操作时有点不一样。。
CREATE PROCEDURE p_GetBetweenData
@tableName as varchar(20),--表名
@fieldList as varchar(1000),--字段列表
@startIndex as varchar(10),--开始
@endIndex as varchar(10)--结束
AS
Declare @strSql as Varchar(4000) --定义sql字符串
--将原表数据复制到临时表
begin
set @strSql='SELECT TOP '+@endIndex+' 0 AS _ID,* INTO tempTB FROM '+@tableName
--print @strSql
exec(@strSql)
end
--更新列编号,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改
begin
Declare @i int
set @i=0
update tempTB set @i=@i+1,_ID=@i
end
--查询出指定的记录
begin
set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex
--print @strSql
exec(@strSql )
end
--删除临时表
--begin
--drop table tempTB
--end
GO
相关文章推荐
- 查询同一表内多字段同时重复记录的SQL语句!
- 查询及删除重复记录的SQL语句
- 查询同一表内多字段同时重复记录的SQL语句
- 使用传入的总记录数实现一条sql语句完成分页查询
- 用SQL语句查询数据库中某一字段下相同值的记录方法
- Oracle 查询并删除重复记录的SQL语句
- SQL语句查询数据库表占用和记录数
- 查询从第几条到第几条记录的高效sql语句
- 查询同一表内多字段同时重复记录的SQL语句
- SQL语句,查询数据库中间连续的记录
- sql语句在sql server中查询每个表的记录数,占用的空间,索引占用的空间等
- plsql developer如何查询SQL语句执行历史记录(转)
- 用标准的SQL语句实现查询记录分页
- 查询并删除重复记录的SQL语句
- 用标准的SQL语句实现查询记录分页
- 查询并删除重复记录的SQL语句
- 使用SQL语句查询表中重复记录并删除
- Oracle 查询并删除重复记录的SQL语句
- 查询及删除重复记录的SQL语句
- 查询并删除重复记录的SQL语句 (示例)