ASP构造大数据量的分页SQL语句。

看了铁拳的存储过程“实现千万级数据的分页显示!”,觉得不错,我给改成了ASP代码了。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'分页SQL语句生成代码
Function GetPageSQL(tblName,fldName,PageSize,PageIndex,OrderType,strWhere)
Dim strTemp,strSQL,strOrder

    '根据排序方式生成相关代码
    if OrderType=0 then
        strTemp=">(select max([" & fldName & "])"
        strOrder=" order by [" & fldName & "] asc"
    else
        strTemp="<(select min([" & fldName & "])"
        strOrder=" order by [" & fldName & "] desc"
    end if
    
    '若是第1页则无须复杂的语句
    if PageIndex=1 then
        strTemp=""
        if strWhere<>"" then
            strTmp = " where " + strWhere
        end if
        strSQL = "select top " & PageSize & " * from [" & tblName & "]" & strTmp & strOrder
    else        '若不是第1页,构造SQL语句
        strSQL="select top " & PageSize & " * from [" & tblName & "] where [" & fldName & "]" & strTemp & _
        " from (select top " & (PageIndex-1)*PageSize & " [" & fldName & "] from [" & tblName & "]"
        if strWhere<>"" then
            strSQL=strSQL & " where " & strWhere
        end if
        strSQL=strSQL & strOrder & ") as tblTemp)"
        if strWhere<>"" then
            strSQL=strSQL & " And " & strWhere
        end if
        strSQL=strSQL & strOrder
    end if
    GetPageSQL=strSQL        '返回SQL语句
End Function
response.write(GetPageSQL("message","messageid",10,1,0,""))
%>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值