找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 2726|回复: 2

[数据库知识] SQL2005如何进行分页

[复制链接]
发表于 2008-9-12 11:05:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
在存储过程中进行分页的操作,以前没在SQL2005中进行分页过,据说2005含有分页的功能,网上查了一下资料,现在整理了一下,以便下次遇到时进行查阅!



create PROCEDURE [dbo].[Pro_Test]
    -- Add the parameters for the stored procedure here
    @PageSize FLOAT,--每页显示的个数
    @TargetPage SMALLINT--目标页的索引值
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    WITH Sales_CTE(PageNumber,ID,Numb,Password,CreateDate)
    AS(
    select CEILING((ROW_NUMBER() OVER (ORDER By CreateDate desc))/@PageSize) as PageNumber,ID,
    Numb,Password,CreateDate from tbl_Wealth_WorthCard
    )
    select ID,Numb,Password,CreateDate from Sales_CTE
    where PageNumber=@TargetPage
对以上存储过程进行分析一下:
with:  这条语句会调用SQL Server中的一个新属性,我们称之为common table expression(CTE),从本质上来说,我们可以将CTE看作是高版本的临时表。
分页的实质就是CTE中的TSQL语句。在下面的选择语句中,我使用了一个新的排序函数——ROW_NUMBER(这一函数很容易使用,你只需要给 ROW_NUMBER函数提供一个域名作为参数,ROW_NUMBER会用它来进行分页)。随后,我使用@PageSize参数来划分每页的行数以及每页的最大行数值。
发表于 2008-9-13 10:50:33 | 显示全部楼层
学习一下!!!!1
发表于 2008-9-17 11:17:51 | 显示全部楼层
学习学习!!1!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-24 08:54 , Processed in 0.049567 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表