चूंकि आप SQL सर्वर 2005 का उपयोग कर रहे हैं, यह कोड है:
DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)
SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1])
FROM myTable FOR XML PATH('') ), 1, 1, '')
SET @sqlquery = 'SELECT * FROM
(SELECT Name2, Name1, Value
FROM myTable ) base
PIVOT (Sum(Value) FOR [Name1]
IN (' + @cols + ')) AS finalpivot'
EXECUTE ( @sqlquery )
इससे कोई फर्क नहीं पड़ता कि आपके पास कितनी अलग स्थिति है। यह गतिशील रूप से PIVOT
. के साथ एक क्वेरी को असेंबल करता है . डायनेमिक कॉलम के साथ PIVOT करने का एकमात्र तरीका क्वेरी को गतिशील रूप से असेंबल करना है, जिसे SQL सर्वर में किया जा सकता है।
अन्य उदाहरण:
- टी-एसक्यूएल में डेटा पिवट करें
- SQL सर्वर के साथ एकल तालिका में शामिल होकर मैं सारांश कैसे बनाऊं?
- https://stackoverflow.com/q/8248059/570191