मुझे यकीन नहीं है कि आपको क्यों लगता है कि आप इसे UNPIVOT
. के साथ पूरा नहीं कर सकते हैं और एक PIVOT
:
select [1], [2], [3], [4], [5]
from
(
select *
from
(
select col1, col2, col3,
row_number() over(order by col1) rn
from yourtable
) x
unpivot
(
val for col in (col1, col2, col3)
) u
) x1
pivot
(
max(val)
for rn in ([1], [2], [3], [4], [5])
) p
देखें SQL Fiddle with Demo . यदि आवश्यक हो तो इसे गतिशील रूप से भी किया जा सकता है।
संपादित करें, यदि कॉलम क्रम को रखने की आवश्यकता है, तो आप कुछ इस तरह का उपयोग कर सकते हैं, जो row_number()
पर लागू होता है order by
. का उपयोग किए बिना आपकी तालिका के किसी एक स्तंभ पर (यहाँ एक उपयोग करने के बारे में लेख है गैर-नियतात्मक पंक्ति संख्याएँ
):
select [1], [2], [3], [4], [5]
from
(
select *
from
(
select col1, col2, col3,
row_number()
over(order by (select 1)) rn
from yourtable
) x
unpivot
(
val for col in (col1, col2, col3)
) u
) x1
pivot
(
max(val)
for rn in ([1], [2], [3], [4], [5])
) p;
देखें SQL Fiddle with Demo