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

स्तंभ नाम पिवट तालिका के रूप में SQL सर्वर पंक्ति मान?

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

select *
from 
(
  select dept, emp_id, emp_name, p_date, hours_worked
  from table1
) x
pivot
(
  max(hours_worked)
  for p_date in ([2012-10-19], [2012-10-20], [2012-10-21])
) p

देखें SQL Fiddle with Demo

यदि आपके पास अज्ञात संख्या में मान हैं, तो आप गतिशील sql का उपयोग PIVOT . के लिए कर सकते हैं डेटा:

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

select @cols = STUFF((SELECT distinct ',' 
                        + QUOTENAME(convert(char(10), p_date, 120)) 
                    from table1
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT dept, emp_id, emp_name,' + @cols + ' from 
             (
                select dept, emp_id, emp_name, p_date, hours_worked
                from table1
            ) x
            pivot 
            (
                max(hours_worked)
                for p_date in (' + @cols + ')
            ) p '

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. SQL सर्वर:क्वेरी को .txt फ़ाइल के रूप में निर्यात करें

  2. JSON PATH उदाहरणों के लिए SQL सर्वर (T-SQL)

  3. संग्रहीत कार्यविधि के लिए एक SqlParameter में दिनांक समय का उपयोग करना, प्रारूप त्रुटि

  4. एक एकल SqlCommand का उपयोग करके एक रिकॉर्ड कैसे सम्मिलित करें और नव निर्मित आईडी वापस कैसे करें?

  5. एमएस एसक्यूएल 2008 - डीबी में सभी टेबल नाम और उनकी पंक्ति गणना प्राप्त करें