日期:2014-05-17  浏览次数:20518 次

分页存储过程 排除重复行
分页存储过程 因为使用ROW_NUMBER() 所以不能使用distinct去掉重复的行。请教如何修改才能去掉重复的行
Create PROCEDURE [dbo].[GetRecordFromPage] 
    @SelectList            VARCHAR(2000),    --欲选择字段列表
    @TableSource        VARCHAR(100),    --表名或视图表 
    @SearchCondition    VARCHAR(2000),    --查询条件 
    @OrderExpression    VARCHAR(1000),    --排序表达式
    @PageIndex            INT = 1,        --页号,从0开始
    @PageSize            INT = 10        --页尺寸
AS 
BEGIN
    IF @SelectList IS NULL or LTRIM(RTRIM(@SelectList)) = ''
    BEGIN
        SET @SelectList = '*'
    END
    PRINT @SelectList

    SET @SearchCondition = ISNULL(@SearchCondition,'')
    SET @SearchCondition = LTRIM(RTRIM(@SearchCondition))
    IF @SearchCondition <> '' 
    BEGIN
        IF UPPER(SUBSTRING(@SearchCondition,1,5)) <> 'Where'
        BEGIN
            SET @SearchCondition = 'Where ' + @SearchCondition
        END
    END
    PRINT @SearchCondition

    SET @OrderExpression = ISNULL(@OrderExpression,'')
    SET @OrderExpression = LTRIM(RTRIM(@OrderExpression))
    IF @OrderExpression <> ''
    BEGIN
        IF UPPER(SUBSTRING(@OrderExpression,1,5)) <> 'Where'
        BEGIN
            SET @OrderExpression = 'ORDER BY ' + @OrderExpression 
        END
    END
    PRINT @OrderExpression