कुछ अलग तरीके हैं जिनसे आप मनचाहा परिणाम प्राप्त कर सकते हैं। @Sheela K R's के समान उत्तर आप CASE अभिव्यक्ति के साथ एक समग्र फ़ंक्शन का उपयोग कर सकते हैं लेकिन इसे अधिक संक्षिप्त तरीके से लिखा जा सकता है:
select
max(case when rowid = 1 then first end) First1,
max(case when rowid = 1 then last end) Last1,
max(case when rowid = 2 then first end) First2,
max(case when rowid = 2 then last end) Last2,
max(case when rowid = 3 then first end) First3,
max(case when rowid = 3 then last end) Last3,
max(case when rowid = 4 then first end) First4,
max(case when rowid = 4 then last end) Last4,
max(case when rowid = 5 then first end) First5,
max(case when rowid = 5 then last end) Last5
from yourtable;
देखें SQL Fiddle with Demo ।
इसे PIVOT फ़ंक्शन का उपयोग करके भी लिखा जा सकता है, हालाँकि चूंकि आप कई कॉलम पिवट करना चाहते हैं, तो आप पहले अपने First
को अनपिवट करते हुए देखना चाहेंगे। और Last
स्तंभ।
अनपिवट प्रक्रिया आपके कई कॉलम को डेटा की कई पंक्तियों में बदल देगी। आपने यह निर्दिष्ट नहीं किया कि आप SQL सर्वर के किस संस्करण का उपयोग कर रहे हैं, लेकिन आप SELECT
. का उपयोग कर सकते हैं UNION ALL
. के साथ CROSS APPLY
के साथ या यहां तक कि UNPIVOT
पहला रूपांतरण करने के लिए कार्य:
select col = col + cast(rowid as varchar(10)), value
from yourtable
cross apply
(
select 'First', First union all
select 'Last', Last
) c (col, value)
देखें SQL Fiddle with Demo . यह आपके डेटा को प्रारूप में परिवर्तित करता है:
| COL | VALUE |
|--------|-------------|
| First1 | RandomName1 |
| Last1 | RandomLast1 |
| First2 | RandomName2 |
| Last2 | RandomLast2 |
एक बार जब डेटा कई पंक्तियों में हो, तो आप आसानी से PIVOT फ़ंक्शन लागू कर सकते हैं:
select First1, Last1,
First2, Last2,
First3, Last3,
First4, Last4,
First5, Last5
from
(
select col = col + cast(rowid as varchar(10)), value
from yourtable
cross apply
(
select 'First', First union all
select 'Last', Last
) c (col, value)
) d
pivot
(
max(value)
for col in (First1, Last1, First2, Last2,
First3, Last3, First4, Last4, First5, Last5)
) piv;
देखें SQL Fiddle with Demo
दोनों इसका परिणाम देते हैं:
| FIRST1 | LAST1 | FIRST2 | LAST2 | FIRST3 | LAST3 | FIRST4 | LAST4 | FIRST5 | LAST5 |
|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| RandomName1 | RandomLast1 | RandomName2 | RandomLast2 | RandomName3 | RandomLast3 | RandomName4 | RandomLast4 | RandomName5 | RandomLast5 |