表中取出第 n 条到第 m 条的记录及相应的存储过程
2008-11-12 21:21
162 查看
从publish 表中取出第 n 条到第 m 条的记录
SELECT TOP m-n+1 *
FROM publish
WHERE (id NOT IN (SELECT TOP n-1 id FROM publish))
存储过程:
CREATE PROCEDURE pagination2
(
@SQL nVARCHAR(4000), --不带排序语句的SQL语句
@Page int, --页码
@RecsPerPage int, --每页容纳的记录数
@ID VARCHAR(255), --需要排序的不重复的ID号
@Sort VARCHAR(255) --排序字段及规则
)
AS
DECLARE @Str nVARCHAR(4000)
SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+'NOT IN
(SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort
PRINT @Str
EXEC sp_ExecuteSql @Str
GO
SELECT TOP m-n+1 *
FROM publish
WHERE (id NOT IN (SELECT TOP n-1 id FROM publish))
存储过程:
CREATE PROCEDURE pagination2
(
@SQL nVARCHAR(4000), --不带排序语句的SQL语句
@Page int, --页码
@RecsPerPage int, --每页容纳的记录数
@ID VARCHAR(255), --需要排序的不重复的ID号
@Sort VARCHAR(255) --排序字段及规则
)
AS
DECLARE @Str nVARCHAR(4000)
SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+'NOT IN
(SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort
PRINT @Str
EXEC sp_ExecuteSql @Str
GO
相关文章推荐
- 不用游标从表中取出前N条记录的存储过程
- 不用游标从表中取出前N条记录的存储过程
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- 存储过程查询一张表中记录是否连续、重复并且取出对应的数据
- 从Table 表中取出第 m 条到第 n 条的记录
- mysql查看存储过程工作记录20130711
- 在sql server 2005的存储过程中使用cursor来取出exec()执行的结果表
- Oracle 通过存储过程删除两个表中符合条件的记录
- SQL Server 文档整理 - 2 清空所有数据库表记录的存储过程
- 用一句SQL取出第 m 条到第 n 条记录的方法
- 自动记录数据库存储过程的更新和改变,并产生日志
- 用一句SQL取出第 m 条到第 n 条记录的方法
- :[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录
- mysql存储过程查找某记录处于分页的哪一页
- 批量删除记录的存储过程
- 通用存储过程.查找删除非唯一的记录
- 如何传值给存储过程中的In条件?(根据多个id查找对应的记录的处理)
- 通用存储过程之三:根据主键的值,查询记录的存储过程
- 把多条记录转为一个字符串输出存储过程
- 用一句SQL取出第 m 条到第 n 条记录的方法