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

SQL सर्वर में सामग्री और 'Xml पथ के लिए' कैसे काम करते हैं?

यहां बताया गया है कि यह कैसे काम करता है:

<मजबूत>1. XML के लिए XML तत्व स्ट्रिंग प्राप्त करें

किसी क्वेरी के अंत में XML PATH को जोड़ने से आप क्वेरी के परिणामों को XML तत्वों के रूप में आउटपुट कर सकते हैं, जिसमें PATH तर्क में तत्व नाम शामिल है। उदाहरण के लिए, यदि हमें निम्नलिखित कथन चलाना है:

SELECT ',' + name 
              FROM temp1
              FOR XML PATH ('')

एक खाली स्ट्रिंग (XML PATH('') के लिए) में पास करने पर, हमें इसके बजाय निम्नलिखित मिलते हैं:

,aaa,bbb,ccc,ddd,eee

<मजबूत>2. STUFF के साथ प्रमुख अल्पविराम निकालें

STUFF कथन शाब्दिक रूप से एक स्ट्रिंग को दूसरे में "स्टफ" करता है, पहली स्ट्रिंग के भीतर वर्णों को प्रतिस्थापित करता है। हालांकि, हम इसका उपयोग केवल मूल्यों की परिणामी सूची के पहले वर्ण को हटाने के लिए कर रहे हैं।

SELECT abc = STUFF((
            SELECT ',' + NAME
            FROM temp1
            FOR XML PATH('')
            ), 1, 1, '')
FROM temp1

STUFF . के पैरामीटर हैं:

  • "भरवां" स्ट्रिंग (हमारे मामले में, अल्पविराम के साथ नाम की पूरी सूची)
  • अक्षरों को हटाना और सम्मिलित करना प्रारंभ करने का स्थान (1, हम एक रिक्त स्ट्रिंग में भर रहे हैं)
  • हटाए जाने वाले वर्णों की संख्या (एक प्रमुख अल्पविराम होने के कारण)

तो हम इसके साथ समाप्त होते हैं:

aaa,bbb,ccc,ddd,eee

<मजबूत>3. पूरी सूची प्राप्त करने के लिए आईडी पर जुड़ें

इसके बाद हम नाम के साथ आईडी की सूची प्राप्त करने के लिए अस्थायी तालिका में आईडी की सूची में शामिल हो जाते हैं:

SELECT ID,  abc = STUFF(
             (SELECT ',' + name 
              FROM temp1 t1
              WHERE t1.id = t2.id
              FOR XML PATH (''))
             , 1, 1, '') from temp1 t2
group by id;

और हमारे पास हमारा परिणाम है:

Id <थ>नाम 1एएए, बीबीबी, सीसीसी, डीडीडी, ईईईई

आशा है कि यह मदद करेगा!



  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 सर्वर में सभी मौजूदा अस्थायी तालिकाओं की सूची प्राप्त करने का कोई तरीका है?

  2. क्या आपके पास SQL ​​​​में यदि-तब-तर्क तर्क हो सकता है?

  3. SQL सर्वर ROWCOUNT_BIG ()

  4. डेटा प्रतिकृति का उद्देश्य क्या है?

  5. SQL सर्वर में आपातकालीन मोड से डेटाबेस पुनर्प्राप्त करें