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

एक्सएमएल के साथ पंक्ति संयोजन, लेकिन एकाधिक कॉलम के साथ?

आप ऐसा कुछ कर सकते हैं। XML मान को तुरंत एक स्ट्रिंग में भेजने के बजाय, यह क्वेरी एक xml प्रकार की वस्तु को वापस करने के लिए TYPE कीवर्ड का उपयोग करती है जिसे तब क्वेरी किया जा सकता है। तीन क्वेरी फ़ंक्शन कुछ फ़ील्ड तत्व के सभी उदाहरणों के लिए xml ऑब्जेक्ट खोजते हैं और एक नया xml ऑब्जेक्ट लौटाते हैं जिसमें केवल वे मान होते हैं। फिर मान फ़ंक्शन मानों के आस-पास के xml टैग को हटा देता है और उन्हें एक varchar(max)

. में भेजता है
SELECT  ThisTable.ID
       ,[A].query('/Somefield').value('/', 'varchar(max)') AS [SomeField_Combined]
       ,[A].query('/Somefield2').value('/', 'varchar(max)') AS [SomeField2_Combined]
       ,[A].query('/Somefield3').value('/', 'varchar(max)') AS [SomeField3_Combined]
FROM    ThisTable
        OUTER APPLY (
                     SELECT (
                             SELECT SomeField + ' ' AS [SomeField]
                                   ,SomeField2 + ' ' AS [SomeField2]
                                   ,SomeField3 + ' ' AS [SomeField3]
                             FROM   SomeTable
                             WHERE  SomeTable.ID = ThisTable.ID
                            FOR
                             XML PATH('')
                                ,TYPE
                            ) AS [A]
                    ) [A]


  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 सर्वर (T-SQL) में डेटाटाइमऑफ़सेट मान पर समय क्षेत्र ऑफ़सेट बदलें

  3. SQL सर्वर:कॉलम में शामिल हों और संलग्न करें

  4. जॉइन और इनर जॉइन के बीच अंतर

  5. तालिका में परिवर्तन करें फिर एकल कथन में अद्यतन करें