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

Sql सर्वर में एक अल्पविराम से अलग किए गए मान के लिए एकाधिक पंक्तियाँ

परीक्षण डेटा

DECLARE @Table1 TABLE(ID INT, Value INT)
INSERT INTO @Table1 VALUES (1,100),(1,200),(1,300),(1,400)

क्वेरी

SELECT  ID
       ,STUFF((SELECT ', ' + CAST(Value AS VARCHAR(10)) [text()]
         FROM @Table1 
         WHERE ID = t.ID
         FOR XML PATH(''), TYPE)
        .value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM @Table1 t
GROUP BY ID

परिणाम सेट

╔════╦═════════════════════╗
║ ID ║     List_Output     ║
╠════╬═════════════════════╣
║  1 ║  100, 200, 300, 400 ║
╚════╩═════════════════════╝

SQL सर्वर 2017 और बाद के संस्करण

यदि आप SQL सर्वर 2017 या बाद के संस्करणों पर काम कर रहे हैं, तो आप अल्पविराम सीमांकित सूची बनाने के लिए अंतर्निहित SQL सर्वर फ़ंक्शन STRING_AGG का उपयोग कर सकते हैं:

DECLARE @Table1 TABLE(ID INT, Value INT);
INSERT INTO @Table1 VALUES (1,100),(1,200),(1,300),(1,400);


SELECT ID , STRING_AGG([Value], ', ') AS List_Output
FROM @Table1
GROUP BY ID;

परिणाम सेट

╔════╦═════════════════════╗
║ ID ║     List_Output     ║
╠════╬═════════════════════╣
║  1 ║  100, 200, 300, 400 ║
╚════╩═════════════════════╝



  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. SQL सर्वर में XML सम्मिलित करते समय एन्कोडिंग त्रुटि को स्विच करने में असमर्थ कैसे हल करें?

  4. DATEPART () SQL सर्वर में उदाहरण

  5. वेतन तालिका से वां उच्चतम वेतन खोजने के लिए SQL क्वेरी