• You really need only a single ROW_NUMBER function:

    SELECT

    MAX(CASE WHEN row_num % 3 = 0 THEN LotNo ELSE '' END) AS Lot1,

    MAX(CASE WHEN row_num % 3 = 1 THEN LotNo ELSE '' END) AS Lot2,

    MAX(CASE WHEN row_num % 3 = 2 THEN LotNo ELSE '' END) AS Lot3

    FROM (

    SELECT LotNo, ROW_NUMBER() OVER(ORDER BY LotNo) + 2 AS row_num

    FROM LotNo

    ) AS derived

    GROUP BY row_num / 3

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.