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

समूह द्वारा समूहीकृत डेटा प्राप्त करने की आवश्यकता है

निम्नलिखित अवधारणा का उपयोग करने का प्रयास करें:

डेटा डालें:

CREATE TABLE some_table (some_data VARCHAR(20), some_other_data VARCHAR(20), groupId VARCHAR(20));
INSERT INTO some_table (some_data, some_other_data, groupId) values ('a', '1', 'id1');
INSERT INTO some_table (some_data, some_other_data, groupId) values ('b', '2', 'id1');
INSERT INTO some_table (some_data, some_other_data, groupId) values ('c', '3', 'id2');

क्वेरी निष्पादित करें:

SELECT '{"' + t.groupId + '": [{' + STUFF(
          (
            SELECT '{ "some_data":"' + td.some_data + '"', ', "some_other_data":' + td.some_other_data + '},'
            FROM some_table td
            WHERE t.groupId = td.groupId
            FOR XML PATH(''), TYPE
          ).value('.', 'NVARCHAR(MAX)'), 1, 1, '') + ']}'
FROM some_table t
GROUP BY t.groupId

परिणाम:

ध्यान दें कि पिछला कॉमा डेटा की वैधता को प्रभावित नहीं करना चाहिए। SQL सर्वर के साथ मेरा अनुभव सीमित है, लेकिन इससे आपको उस दिशा में शुरुआत करनी चाहिए जो काम कर सके।

बेला:

http://sqlfiddle.com/#!6/66b19/35




  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 सर्वर 2008 R2 - गतिशील पिवट/अनपिवट (चलती) तिथियों के साथ

  2. तालिका के केवल एक कॉलम के आधार पर डुप्लिकेट मानों को हटाना

  3. एसक्यूएल:बनाम <=और>=. के बीच

  4. SQL सर्वर में सशर्त WHERE क्लॉज

  5. SQL सर्वर 2008, यह कितनी जगह घेरता है?