打印

[数据库教程] SQL语句学习实例:sql定位记录

SQL语句学习实例:sql定位记录

降序
(1)@PageIndex <= @FirstIndex
SELECT TOP @PageSize @QueryFields
FROM @TableName
WHERE @Condition
ORDER BY @PrimaryKey DESC

(2)@FirstIndex < @PageIndex <= @MiddleIndex

SELECT TOP @PageSize @QueryFields
FROM @TableName
WHERE @PrimaryKey < (
    SELECT MIN(@PrimaryKey) FROM (
        SELECT TOP @PageSize*@PageIndex @PrimaryKey
        FROM @TableName
        WHERE @Condition
        ORDER BY @PrimaryKey DESC
    ) TableA
) WHERE @Condition
ORDER BY @PrimaryKey DESC


(3)@MiddleIndex < @PageIndex < @LastIndex

SELECT * FROM (
    SELECT TOP @PageSize @QueryFields
    FROM @TableName
    WHERE @PrimaryKey > (
        SELECT MAX(@PrimaryKey) FROM (
            SELECT TOP (@RecordCount-@PageSize*(@PageIndex+1)) @PrimaryKey
            FROM @TableName
            WHERE @Condition
            -- ORDER BY @PrimaryKey ASC
        ) TableA
    ) WHERE @Condition
    -- ORDER BY @PrimaryKey ASC
) TableB
ORDER BY @PrimaryKey DESC


(4)@PageIndex >= @LastIndex

SELECT * FROM (
    SELECT TOP (@RecordCount-@PageSize*@LastIndex) @QueryFields
    FROM @TableName
    WHERE @Condition
    ORDER BY @PrimaryKey ASC

) TableA
ORDER BY @PrimaryKey DESC
关键词:数据库,SQL,语句

TOP

返回顶部
AYBlue

Processed in 0.039824 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-9 07:12 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP