निम्नलिखित अवधारणा का उपयोग करने का प्रयास करें:
डेटा डालें:
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