我的分组分页查询语句

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <杨志翔>
-- Create date: <2011-11-22 14:00>
-- Description: <根据条件分组 根据>
-- exec GetPageListByGroup 'ProductSeries','*',3,5,'ClassTree_ID','ParentClassID','7','ProductSeries_ID','desc','ProductSeriesName like ''%博%'''
-- =============================================
CREATE PROCEDURE GetPageListByGroup
@tblName varchar(255), --表名
@fldStr varchar(1000), --字段列表
@pagesize int, --页的大小
@pageIndex int, --页序号,第多少页
@group varchar(255), --分组字段
@parent varchar(255), --过滤字段
@parentStr varchar(1000), --过滤条件
@ordName varchar(255), --排序的字段名
@ordBy char(4), --排序方式
@where varchar(1000) --查询条件
AS
BEGIN

declare @sql varchar(8000)
set @sql=''
set @sql=@sql+'select '+@fldStr+' from '+@tblName+' where '+@group+' in ('
set @sql=@sql+'select top ('+Convert(varchar(50),@pagesize)+') '+@group+' from ('
set @sql=@sql+'select top ('+Convert(varchar(50),@pagesize*@pageIndex)+') '+@group+' from '+@tblName+' where '+@parent+'='+@parentStr+' group by '+@group+' ) grp Order By '+@group+' DESC'
set @sql=@sql+')'
if len(@where)>0
set @sql=@sql+' and '+@where
set @sql=@sql+' order by '+@group+' ASC'
if len(@ordName)>0
set @sql=@sql+','+@ordName+' '+@ordBy

execute(@sql);

END
GO

转载于:https://www.cnblogs.com/21xz/archive/2011/11/22/2258915.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值