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

किसी अन्य चयन के लिए पंक्ति नामों के रूप में sql चयनित मानों का उपयोग करें

SQL सर्वर 2005+ के लिए, आप डायनेमिक SQL और PIVOT . का उपयोग कर सकते हैं ।

DECLARE @ValuesNames NVARCHAR(4000), @Query NVARCHAR(MAX)
SET @ValuesNames = ''

SELECT @ValuesNames = @ValuesNames + QUOTENAME([name]) + ','
FROM [values] A
INNER JOIN value_type B
ON B.value_id = A.id
GROUP BY [name]
ORDER BY [name]

SET @ValuesNames = LEFT(@ValuesNames,LEN(@ValuesNames)-1)

SET @Query = '
SELECT [date], '[email protected]+'
FROM (  SELECT [date], [name], value
        FROM [values]
        LEFT JOIN value_type ON value_id = id) A
PIVOT(SUM(value) FOR [name] IN ('[email protected]+')) AS PT
'
EXEC sp_executesql @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. पोस्टग्रेज केस सेंसिटिविटी

  2. मैं प्रत्येक INSERT INTO पुनरावृत्ति के लिए मान कैसे बढ़ा सकता हूं?

  3. एसएसआईएस घटक संकलित नहीं कर सकता; विजुअल स्टूडियो 2008 में अनुपलब्ध असेंबली

  4. टी-एसक्यूएल - निर्धारित करें कि क्या मान पूर्णांक है

  5. SQL संग्रहीत कार्यविधि निष्पादित करें और परिणामों को संसाधित करें