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

डायनेमिक पिवोटिंग + एसक्यूएल सर्वर 2005 में समस्या

आप क्वेरी को गतिशील रूप से बना सकते हैं:

declare @installment_list varchar(max)
select @installment_list = IsNull(@installment_list,'') + 
    '[' + cast(Installment as varchar(32)) + '],'
from #tbl
group by Installment

-- Remove last comma
set @installment_list = left(@installment_list,len(@installment_list)-1)

declare @dynquery varchar(max)
set @dynquery = 'select * ' +
    'from #tbl ' +
    'pivot ( ' +
    '   max([Installment]) ' +
    '   for [Installment] ' +
    '   in (' + @installment_list + ') ' +
    ') as pvt'

exec (@dynquery)

ध्यान दें कि तालिका चर निष्पादन () के अंदर दिखाई नहीं दे रहे हैं, इसलिए मैं एक अस्थायी चर (#tbl के बजाय @tbl) में बदल गया हूं।



  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. सभी डेटाबेस की सभी वस्तुओं में तालिका का नाम खोजें

  3. क्या किसी कॉलम के डेटाटाइप को एक दृश्य में बदलना संभव है?

  4. Tsql में तालिका का गतिशील निर्माण

  5. संग्रहीत प्रक्रिया में लूप के समय के बीच तुलना कैसे की जा सकती है?