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

TSQL में तालिका के रूप में XML फ़ाइल से डेटा का चयन करें

set @xmlData='<?xml version="1.0"?>
<ArrayOfSpangemansFilter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SpangemansFilter>
<FilterID>1219</FilterID>
<Name>Fred</Name>
<Code>510</Code>
<Department>N</Department>
<Number>305327</Number>
</SpangemansFilter>
<SpangemansFilter>
<FilterID>3578</FilterID>
<Name>Gary</Name>
<Code>001</Code>
<Department>B</Department>
<Number>0692690</Number>
</SpangemansFilter>
<SpangemansFilter>
<FilterID>3579</FilterID>
<Name>George</Name>
<Code>001</Code>
<Department>X</Department>
<Number>35933</Number>
</SpangemansFilter>
</ArrayOfSpangemansFilter>'


SELECT 
  ref.value('FilterID[1]', 'int') AS FilterID ,
  ref.value('Name[1]', 'NVARCHAR (10)') AS Name ,
  ref.value('Code[1]', 'NVARCHAR (10)') AS Code ,
  ref.value('Department[1]', 'NVARCHAR (3)') AS Department,
  ref.value('Number[1]', 'int') AS Number      
FROM @xmlData.nodes('/ArrayOfSpangemansFilter/SpangemansFilter') 
xmlData( ref )

उत्पादन:

FilterID    Name       Code       Department Number
----------- ---------- ---------- ---------- -----------
1219        Fred       510        N          305327
3578        Gary       001        B          692690
3579        George     001        X          35933

नोट:[1] यह इंगित करने के लिए आवश्यक है कि आप अनुक्रम के पहले मान का चयन करना चाहते हैं क्योंकि क्वेरी प्रति पंक्ति एक से अधिक मिलान मान लौटा सकती है (कल्पना करें कि आपके XML में कई FilterIDs प्रति SpangemansFilter हैं)।

मुझे लगा कि यह जानना उपयोगी है, इसलिए मैंने गुगल किया और कई पोस्ट तब तक पढ़ी जब तक मुझे यह वाला।

अपडेट करें फ़ाइल से लोड करने के लिए:

DECLARE @xmlData XML
SET @xmlData = (
  SELECT * FROM OPENROWSET (
    BULK 'C:\yourfile.xml', SINGLE_CLOB
  ) AS xmlData
)

चुनें @xmlData



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं एक प्रकार से अस्थायी तालिका कैसे बना सकता हूं?

  2. SQL सर्वर में रोलिंग मानक विचलन

  3. PDO_DBLIB का उपयोग करके MS SQL डेटाबेस से कनेक्ट होने में PHP त्रुटि

  4. मैं टीएफएस के साथ डेटाबेस कैसे साझा करूं?

  5. SQL सर्वर RAISERROR स्टेटमेंट सरल उदाहरणों के साथ