zoukankan      html  css  js  c++  java
  • MSSQL按分页前去盘查了局的存储进程

      泉源:网海拾贝




    改一下,看看这样是不是更好一点?
    /*
    函数称号: GetRecordFromPage
    函数遵从: 获取指定页的数据
    参数阐发: @tblName 包括数据的表名
    @fldName 关键字段名
    @PageSize 每页记载数
    @PageIndex 要获取的页码
    @IsCount 能否要获得记载数
    @OrderType 排序典范圭表规范规范, 0 - 升序, 1 - 降序
    @strWhere 盘查条件 (注重: 不要加 where)
    */
    CREATE PROCEDURE pGO_GetRecordFromPage
    @tblName varchar(255), -- 表名
    @fldName varchar(255), -- 字段名
    @PageSize int = 10, -- 页尺寸
    @PageIndex int = 1, -- 页码
    @IsCount bit = 0, -- 前去记载总数, 非 0 值则前去
    @OrderType bit = 0, -- 设置排序典范圭表规范规范, 非 0 值则降序
    @strWhere varchar(1000) = '' -- 盘查条件 (注重: 不要加 where)
    AS

    declare @strSQL varchar(6000) -- 主语句
    declare @strTmp varchar(500) -- 临时变量
    declare @strOrder varchar(400) -- 排序典范圭表规范规范

    -- 如果是盘查记载总数,直接利用Count(0)函数
    if @IsCount != 0
    begin
    if @strWhere != ''
    set @strSQL = 'select count(*) as Total from [' @tblName '] where ' @strWhere
    else
    set @strSQL = 'select count(*) as Total from [' @tblName '] '
    end
    --如果是想盘查记载,则
    else
    begin
    if @PageIndex = 1
    begin
    set @strTmp = ''
    if @strWhere != ''
    set @strTmp = ' where ' @strWhere

    set @strSQL = 'select top ' str(@PageSize) ' * from ['
    @tblName ']' @strTmp ' ' @strOrder
    end
    else
    begin
    --如果是降序盘查……
    if @OrderType != 0
    begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' @fldName '] desc'
    end
    --如果是升序盘查……
    else
    begin
    set @strTmp = '>(select max'
    set @strOrder = ' order by [' @fldName '] asc'
    end

    if @strWhere != ''
    set @strSQL = 'select top ' str(@PageSize) ' * from ['
    @tblName '] where [' @fldName ']' @strTmp '(['
    @fldName ']) from (select top ' str((@PageIndex-1)*@PageSize) ' ['
    @fldName '] from [' @tblName '] where ' @strWhere ' '
    @strOrder ') as tblTmp) and ' @strWhere ' ' @strOrder
    else
    set @strSQL = 'select top ' str(@PageSize) ' * from ['
    @tblName '] where [' @fldName ']' @strTmp '(['
    @fldName ']) from (select top ' str((@PageIndex-1)*@PageSize) ' ['
    @fldName '] from [' @tblName ']' @strOrder ') as tblTmp)'
    @strOrder


    end
    end

    exec (@strSQL)
    GO



    版权声明: 原创作品,容许转载,转载时请务必以超链接办法标明文章 原始出处 、作者信息和本声明。否则将穷究轨则责任。

  • 相关阅读:
    [转]计算机视觉之跟踪算法——相关滤波器Correlation Filter
    [转]CNN 中千奇百怪的卷积方式大汇总
    [转]边框回归(Bounding Box Regression)详解
    [转]CNN目标检测(一):Faster RCNN详解
    史上最全的机器学习工具手册!
    同样是玩Python,怎么能玩出新花样?
    2019阿里巴巴面试题集锦(有答案哦),收藏!
    10个Python图像处理工具,干货整理!
    网页数据如何实现实时刷新?
    数据结构与算法之链表学习方法攻略
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976010.html
Copyright © 2011-2022 走看看