Вы можете использовать apply
:
select tt.*
from table t cross apply
( values (columnA, null, null, null, null, null),
(columnA, columnB, null, null, null, null),
. . .
(columnA, columnB, columnC, columnD, columnF, columnG)
) tt(col1, col2, col3, col4, col5, col6);
Если вы хотите объединить все данные в один столбец, используйте concat()
:
select tt.*
from table t cross apply
( values (columnA),
(concat(columnA, ',', columnB)),
(concat(columnA, ',', columnB, ',', columnC)),
(concat(columnA, ',', columnB, ',', columnC, ',', columnD)),
(concat(columnA, ',', columnB, ',', columnC, ',', columnD, ',', columnF)),
(concat(columnA, ',', columnB, ',', columnC, ',', columnD, ',', columnF, ',', columnG))
) tt(cols);