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

एक अल्पविराम से अलग किए गए मान में स्तंभ मान कैसे प्राप्त करें

आपने प्रश्न को sql-server और plsql दोनों के साथ टैग किया है, इसलिए मैं SQL सर्वर और Oracle दोनों के लिए उत्तर प्रदान करूंगा।

SQL सर्वर में आप FOR XML PATH का उपयोग कर सकते हैं कई पंक्तियों को एक साथ जोड़ने के लिए:

select distinct t.[user],
  STUFF((SELECT distinct ', ' + t1.department
         from yourtable t1
         where t.[user] = t1.[user]
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') department
from yourtable t;

देखें SQL Fiddle with Demo

Oracle 11g+ में आप LISTAGG . का उपयोग कर सकते हैं :

select "User",
  listagg(department, ',') within group (order by "User") as departments
from yourtable
group by "User"

देखें SQL Fiddle with Demo

Oracle 11g से पहले, आप wm_concat . का उपयोग कर सकते थे समारोह:

select "User",
  wm_concat(department) departments
from yourtable
group by "User"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP कोडनिर्देशक से संग्रहीत प्रक्रिया को कॉल करें

  2. SQL सर्वर कनेक्शन प्रयास कहाँ लॉग किए गए हैं?

  3. एसक्यूएल में एक ही आईडी के साथ कई पंक्तियों को कैसे जोड़ना है?

  4. MATLAB SQL सर्वर संचार करें

  5. स्पॉटलाइट क्लाउड अलार्म कस्टमाइज़ करें