You know the maximum value for "col2"? If yes, then you could do something like this (which assumes MAX(col2) = 4):
Code:
SELECT col1, 1
FROM ...
WHERE col2 <= 1
UNION ALL
SELECT col1, 2
FROM ...
WHERE col2 <= 2
UNION ALL
SELECT col1, 3
FROM ...
WHERE col2 <= 3
UNION ALL
SELECT col1, 4
FROM ...
WHERE col2 <= 4
Alternatively, if you have recursive SQL on your platform, try this:
Code:
WITH max(v) AS
( SELECT MAX(col2) FROM ... ),
recurs(col, colMax, currentMax) AS
( SELECT col1, col2, 1
FROM ...
UNION ALL
SELECT col, colMax, currentMax + 1
FROM recurs, max
WHERE colMax < currentMax )
SELECT col, currentMax
FROM recurs