मैंने इसे 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;
यह आपको वह देना चाहिए जो आप चाहते हैं।