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

SQL सर्वर के लिए एकल XQuery में एकाधिक नोड्स हटाना

जबकि इस तरह से हटाना थोड़ा अजीब है, आप इसके बजाय डेटा को बदलने के लिए एक अपडेट कर सकते हैं, बशर्ते आपका डेटा सरल हो (जैसे कि आपने जो उदाहरण दिया)। निम्नलिखित क्वेरी मूल रूप से दो XML स्ट्रिंग्स को तालिकाओं में विभाजित करेगी, उनमें शामिल होगी, गैर-नल (मिलान) मानों को बाहर करेगी, और इसे वापस XML में परिवर्तित करेगी:

UPDATE @table 
SET [column] = (
    SELECT p.i.value('.','int') AS c
    FROM [column].nodes('//i') AS p(i)
    OUTER APPLY (
        SELECT x.i.value('.','bigint') AS i
        FROM @parameter.nodes('//i') AS x(i)
        WHERE p.i.value('.','bigint') = x.i.value('.','int')
    ) a
    WHERE a.i IS NULL
    FOR XML PATH(''), TYPE
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SAP IQ को SQL सर्वर से कनेक्ट करें

  2. बयान समाप्त हो गया। स्टेटमेंट पूरा होने से पहले अधिकतम 100 रिकर्सन समाप्त हो गया है

  3. प्रत्येक अवलोकन में न्यूनतम तिथि की जांच कैसे करें और ध्वज को गतिशील रूप से अपडेट करें

  4. SQL सर्वर में पिछले महीने के रिकॉर्ड प्राप्त करें

  5. डेटाबेस विकास स्वचालन के लिए DevOps समाधान