try something like this if performance is not a concernDECLARE @pvt TABLE( a1 INT )INSERT INTO @pvt VALUES (1)INSERT INTO @pvt VALUES (2)INSERT INTO @pvt VALUES (3)INSERT INTO @pvt VALUES (4)INSERT INTO @pvt VALUES (5)INSERT INTO @pvt VALUES (6)INSERT INTO @pvt VALUES (7)INSERT INTO @pvt VALUES (8)INSERT INTO @pvt VALUES (9); WITH CTE (R1, R2, R3, Seq)AS( SELECT CASE WHEN A1 IN (1, 2, 3) THEN A1 END, CASE WHEN A1 IN (4, 5) THEN A1 END, CASE WHEN A1 IN (6, 7, 8, 9) THEN A1 END, Seq FROM (SELECT *, CASE WHEN A1 IN (1, 2, 3) THEN 1 WHEN A1 IN (4, 5) THEN 2 WHEN A1 IN (6, 7, 8, 9) THEN 3 END AS 'Seq' FROM @pvt) P)SELECT MAX(R1) AS R1, MAX(R2) AS R2, MAX(R3) AS R3FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY Seq ORDER BY Seq) AS 'Ord' FROM CTE ) XGROUP BY Ord
"There is only one difference between a dream and an aim.A dream requires soundless sleep to see,whereas an aim requires sleepless efforts to achieve..!!"