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

पिवट गतिशील कॉलम, कोई एकत्रीकरण नहीं

हाँ आप एक गतिशील धुरी प्रदर्शन कर सकते हैं। कभी-कभी <पर काम करना आसान हो जाता है। कोड>पिवट पहले एक स्थिर संस्करण का उपयोग करके क्वेरी करें ताकि आप देख सकें कि क्वेरी और परिणाम कैसे दिखाई देंगे। फिर क्वेरी को एक गतिशील संस्करण में बदलें।

यहाँ एक क्वेरी के स्थिर बनाम गतिशील संस्करण का एक उदाहरण दिया गया है:

स्टेटिक (SQL Fiddle ):

select *
from 
(
    select u.userid,
        u.fname,
        u.lname,
        u.mobile,
        r.question,
        r.choice
    from users u
    left join results r
        on u.questionid = r.questionid
        and u.choiceid = r.choiceid
) x
pivot
(
    min(choice)
    for question in([are you], [from])
) p

गतिशील (SQL Fiddle ):

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

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

set @query = 'SELECT userid, fname, lname, mobile, ' + @cols + ' from 
            (
                select u.userid,
                    u.fname,
                    u.lname,
                    u.mobile,
                    r.question,
                    r.choice
                from users u
                left join results r
                    on u.questionid = r.questionid
                    and u.choiceid = r.choiceid
           ) x
            pivot 
            (
                min(choice)
                for question 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. SSIS पैकेज को SQLAgent जॉब के रूप में निष्पादित करना

  2. SQL सर्वर में एक जाँच बाधा कैसे बनाएँ (T-SQL उदाहरण)

  3. फ़ाइल सिस्टम में फ़ाइलों के रूप में SQL सर्वर डेटाबेस ऑब्जेक्ट को एक्सपोज़ करना

  4. जावा हाइबरनेट और एसक्यूएल सर्वर में यूयूआईडी के विभिन्न प्रतिनिधित्व

  5. क्वेरी प्रोफाइलिंग 101 - हाँ, यह वास्तव में आपके SQL सर्वर प्रदर्शन में सुधार कर सकता है