Or one way in SQL 2000:DECLARE @Source TABLE (ID INT, PosID INT)INSERT @SourceSELECT 201, 12UNION ALL SELECT 201, 13UNION ALL SELECT 201, 16UNION ALL SELECT 202, 08UNION ALL SELECT 202, 10UNION ALL SELECT 203, 11UNION ALL SELECT 203, 14DECLARE @Target TABLE(ID INT, PosID INT, RowID INT)INSERT @Target (ID, PosID, RowID)SELECT S.ID, S.PosID, (SELECT COUNT(*) FROM @Source AS S1 WHERE S.ID = S1.ID AND S1.PosID < S.PosID) + 1 AS RowIDFROM @Source AS SORDER BY S.ID, S.PosIDSELECT *FROM @Target