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

टी-एसक्यूएल में एक्सएमएल कैसे पढ़ा जाए?

मान लें कि आपके पास यह एक्सएमएल टी-एसक्यूएल वेरिएबल में है - तो आप कोड के इस स्निपेट का उपयोग कर सकते हैं:

DECLARE @input XML = '...(your XML here).....'

SELECT
    Key1 = Item.value('(key)[1]', 'int'),
    Key2 = Item2.value('(key)[1]', 'int'),
    ItemValue = Item2.value('(value)[1]', 'varchar(50)')
FROM 
    @input.nodes('/root/item') AS T(Item)
CROSS APPLY
    item.nodes('value/params/item') AS T2(Item2)

यह मुझे निम्न का आउटपुट देता है:

Key1  Key2  ItemValue
 1     1     value
 1     2     value2
 1     3     value3
 2     4     value4
 2     5     value5
 2     6     value6  

दृष्टिकोण निम्नलिखित है:

  • <item> की सूची को पकड़ो <root> . के अंतर्गत नोड्स पहले .nodes() . के साथ आपकी पहली "XML नोड्स की सूची" के रूप में XQuery विधि, और <key> . का मान निकालें उस XML फ़्रैगमेंट में XML तत्व Key1 . में

  • value/params/item का उपयोग करके उस XML फ़्रैगमेंट के अंदर XML नोड्स की "नेस्टेड" सूची प्राप्त करें XPath, चाइल्ड रो प्राप्त करने के लिए - और <key> . से मान निकालने के लिए और <value> उन नेस्टेड चाइल्ड XML फ़्रैगमेंट से Key2 . में और ItemValue




  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. एक्सेस 2010 तालिका में SQL सर्वर क्वेरी परिणामों की प्रतिलिपि बनाना

  3. बाइनरी डेटा स्टोर करने के लिए VarBinary बनाम छवि SQL सर्वर डेटा प्रकार?

  4. क्या मैं एक कॉलम में एकाधिक पंक्तियों को अल्पविराम से परिसीमित कर सकता हूँ?

  5. SQL सर्वर - क्वेरी शॉर्ट-सर्किटिंग?