मैंने इसे The Art ofSQL किताब से निकाला है। , पृष्ठ 284-286:
मान लें कि आपकी तालिका का नाम foo है ।
सबसे पहले, pivot . नामक एक टेबल बनाएं :
CREATE Table pivot (
count int
);
उस तालिका में उतनी ही पंक्तियाँ डालें जितने स्तंभ हैं जिन्हें आप foo . में पिवट करना चाहते हैं . चूँकि आपके पास foo . में तीन कॉलम हैं जिसे आप पिवट करना चाहते हैं, पिवट तालिका में तीन पंक्तियां बनाएं:
insert into pivot values (1);
insert into pivot values (2);
insert into pivot values (3);
अब foo . के बीच एक कार्टेशियन जॉइन करें और pivot , CASE . का उपयोग करके गिनती के आधार पर सही कॉलम चुनने के लिए:
SELECT foo.id, Case pivot.count
When 1 Then cat
When 2 Then one_above
When 3 Then top_level
End Case
FROM foo JOIN pivot;
यह आपको वह देना चाहिए जो आप चाहते हैं।