SQL存储过程中分页
2016-07-19 10:28
453 查看
</pre><pre name="code" class="sql">ALTER proc [dbo].[GetGoodsLsit] ----分页条件 @StartIndex varchar(20), @PageSize varchar(20), ----排序条件 @SortExpression varchar(50), --排序字段 @Direction varchar(10), --排序方式 @Seltype varchar(100),--查询类别 @Selstr varchar(500)--查询内容 as begin declare @SQL varchar(6000) if @SortExpression <> '' and @Direction <> ''--排序字段 BEGIN set @SQL='select Row_Number() over (order by '+@SortExpression+' '+@Direction+') as row, ' end else BEGIN set @SQL=' select Row_Number() over (order by gl.GoodsId desc ) as row, ' END set @SQL= @SQL+' gl.*,PositionsName,PositionsID from V_GoodsList gl left join G_Cfg_PositionsList pl on pl.GoodsID=gl.GoodsID where gl.bBlockUp=0'
--查询条件 if @Seltype<>'' begin if @Seltype='GoodsNo' begin set @SQL=@SQL+' and GoodsNo='''+@Selstr+'''' end if @Seltype='GoodsName' begin set @SQL=@SQL+' and GoodsName like ''%'+@Selstr+'%''' end end
set @SQL = ' With orderlist as ('+ @SQL +')' if @SortExpression<> '' and @Direction<>''--排序字段 set @SQL=@SQL+' select *,(select count(*) from orderlist )as count from orderlist where row between (convert(int,'+@StartIndex+')-1)* convert(int,'+@PageSize+')+1 and (convert(int,'+@StartIndex+') * convert(int,'+@PageSize+') ) order by '+@SortExpression+' '+@Direction+'' else set @SQL=@SQL+' select *,(select count(*) from orderlist )as count from orderlist where row between (convert(int,'+@StartIndex+')-1)* convert(int,'+@PageSize+')+1 and (convert(int,'+@StartIndex+') * convert(int,'+@PageSize+') ); ' set @SQL=@SQL+' select * from G_Goods_GoodsSpec where bBlockup=0 ;' print @SQL exec(@SQL) end
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- Tomcat端口被占用解决方法(不用重启)
- more、less 和 most 的区别
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案