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

ट्रांजैक्ट/एसक्यूएल में पिवोटटेबल कैसे बनाएं?

आपको एक PIVOT . आप या तो एक स्टेटिक पिवोट का उपयोग कर सकते हैं जहां आप कॉलम के मूल्यों को बदलने के लिए जानते हैं या एक डायनामिक पिवोट जहां कॉलम निष्पादन समय तक अज्ञात हैं।

स्थिर धुरी (देखें SQL Fiddle with Demo ):

select *
from 
(
    select memid, Condition_id, Condition_Result
    from t
) x
pivot
(
    sum(condition_result)
    for condition_id in ([C1], [C2], [C3], [C4])
) p

गतिशील धुरी (देखें SQL Fiddle with Demo ):

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

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.condition_id) 
            FROM t c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')


set @query = 'SELECT memid, ' + @cols + ' from 
            (
                select MemId, Condition_id, condition_result
                from t
           ) x
            pivot 
            (
                sum(condition_result)
                for condition_id in (' + @cols + ')
            ) p '


execute(@query)

दोनों एक ही परिणाम उत्पन्न करेंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. भूगोल कॉलम पर STContains

  2. SQL सर्वर में माध्यिका की गणना करने का कार्य

  3. गैर-प्राथमिक कुंजी के लिए विदेशी कुंजी

  4. jdbc.SQLServerException:किसी भी उपयोगकर्ता के लिए उपयोगकर्ता के लिए लॉगिन विफल रहा

  5. क्या टीएसक्यूएल एसक्यूएल सर्वर में संग्रहित प्रक्रिया की तुलना में तेजी से परिणाम लौटाएगा