PIVOT उदाहरण का उपयोग कर SQL सर्वर
SQL सर्वर एक वास्तविक दुनिया प्रकार के परिदृश्य में एक साधारण PIVOT फ़ंक्शन का उपयोग करता है, जहां कॉलम की संख्या हमेशा ज्ञात होती है।
लेखक
पिछले I लेख में, मैंने UNPIVOT का उपयोग करने के बारे में लिखा था, यह विपरीत कार्य PIVOT है, जहां यह पंक्तियों को स्तंभों में बदल देगा, मैंने कुछ डेटा का उपयोग किया है जो जरूरी नहीं कि वास्तविक दुनिया का उदाहरण हो, लेकिन हमें खेलने के लिए पर्याप्त विकल्प देगा साथ।
Dummy data
MyRow | MyCol | CalcCol |
1 | 1 | 1 |
1 | 3 | 1 |
1 | s | 1 |
2 | 2 | 1 |
2 | 2 | 6 |
2 | 3 | 1 |
3 | 2 | 1 |
3 | 3 | 1 |
3 | 3 | 3 |
3 | 5 | 5 |
लेखक
करने के लिए पहली बात यह डमी डेटा सेट बनाना है, ताकि हम नीचे दिए गए कोड का उपयोग करके ऐसा कर सकें।
हम एक टेबल टाइप भी बनाने जा रहे हैं (ये अस्थायी टेबल के प्रदर्शन में सुधार कर सकते हैं)।
SQL
CREATE TYPE c1bs_Piv AS TABLE(MyRow NVARCHAR(10),--Row IDMyCol NVARCHAR(10),--Value to become columnCalcCol INT--Value to be Summed)GODECLARE @Piv c1bs_PivINSERT INTO @PivSELECT '1','1',1 UNIONSELECT '1','s',1 UNIONSELECT '1','3',1 UNIONSELECT '2','2',6 UNIONSELECT '2','2',1 UNIONSELECT '2','3',1 UNIONSELECT '3','5',5 UNIONSELECT '3','2',1 UNIONSELECT '3','3',1 UNIONSELECT '3','3',3
लेखक
डेटा को पिवट करने के लिए, हम निम्नलिखित SQL कोड लिखना चाहेंगे।
SELECT *FROM @PivPIVOT (SUM(CalcCol)FOR MyColIN ([1],[2],[3])) AS MyTable
लेखक
और यह निम्नलिखित डेटा सेट लौटाएगा। ध्यान दें कि जहां हमने ऊपर "5" और "एस" कॉलम जोड़े हैं, उन्हें इसके साथ छोड़ दिया जाएगा, और अगले लेख में हम यह सुनिश्चित करने जा रहे हैं कि हम इसे कैप्चर करें।
MyRow | 1 | 2 | 3 |
1 | 1 | NULL | 1 |
2 | NULL | 7 | 1 |
3 | NULL | 1 | 4 |