• Dear Sir,

    This is really very good alternative solution.

    Can't I delete the selected bad rows in the same statement like this....

    WITH OrderedData AS (

    SELECT

    Seq_No,

    cdata,

    x.RowID,

    rn = ROW_NUMBER() OVER(PARTITION BY x.RowID ORDER BY p.Seq_No)

    FROM #Test_Table p

    CROSS APPLY (

    SELECT RowID = MAX(Seq_No)

    FROM #Test_Table

    WHERE CData = '*********************************************' AND Seq_No <= p.Seq_No

    ) x

    )

    Delete from t

    output deleted.Seq_No, deleted.CData

    into dbo.Test_Table_Bad_Records

    FROM OrderedData t

    WHERE t.RowID IN (

    SELECT r1.RowID

    FROM OrderedData r1

    INNER JOIN OrderedData r2

    ON r2.RowID = r1.RowID AND r2.rn = r1.rn + 1

    WHERE r1.CData = 'RateQuote' AND r2.CData = ' ')

    Thanks..