Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2005 के साथ एक तालिका से डेटा को कैसे पिवट करें?

यह वास्तव में के साथ बहुत आसानी से किया जा सकता है। PIVOT समारोह। चूंकि अन्य उत्तर में इसे निष्पादित करने के तरीके से संबंधित कोड नहीं दिखाया गया है, यहां PIVOT के दो तरीके दिए गए हैं आँकड़े।

पहला स्थिर धुरी . के साथ है . एक स्थिर धुरी तब होती है जब आप कॉलम में बदलने के लिए समय से पहले डेटा जानते हैं।

select *
from 
(
    select name, id, convert(char(5), dt, 101) dt, jobid, amount
    from test
) x
pivot
(
    sum(amount)
    for dt in ([01/02], [02/02], [03/02], [04/05], [05/05])
)p
order by jobid, name

देखें SQL Fiddle with Demo

दूसरा तरीका है डायनामिक PIVOT . का उपयोग करना रन-टाइम पर कॉलम में बदलने के लिए मानों की पहचान करने के लिए।

DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(convert(char(5), dt, 101)) 
                    from test
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT name, id, ' + @cols + ', jobid from 
             (
                select  name, id, convert(char(5), dt, 101) dt, jobid, amount
                from test
            ) x
            pivot 
            (
                sum(amount)
                for dt in (' + @cols + ')
            ) p 
            order by jobid, name'

execute(@query)

देखें SQL Fiddle with Demo

दोनों समान परिणाम देंगे। जब आप कॉलम में कनवर्ट करने के लिए समय से पहले के मूल्यों को नहीं जानते हैं तो डायनामिक बहुत अच्छा काम करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कुल के लिए क्वेरी लागत कॉलम की प्रत्येक पंक्ति के साथ जुड़ती रहना चाहिए

  2. SQL सर्वर में सर्वर साइड पेजिंग

  3. एएसपी.नेट एमवीसी के साथ एकाधिक प्राथमिक कुंजी 3

  4. एकाधिक माता-पिता वाले बच्चों के लिए पैरेंट-चाइल्ड रिकॉर्ड वापस करने के लिए SQL Server 2005 CTE कैसे बनाएं

  5. SQL सर्वर में SESSION_CONTEXT () कैसे काम करता है