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

XML डेटा को पदानुक्रमित तालिकाओं में पढ़ें

हम (ab) ROW_NUMBER() का उपयोग कर सकते हैं XQuery के बाहर आईडी जेनरेट करने के लिए। प्रस्तावना:

WITH questions AS (
    SELECT
        ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS ID,
        n.q.value('(./questionText)[1]', 'nvarchar(max)') AS questionText,
        n.q.value('(./result)[1]', 'nvarchar(50)') AS result,
        n.q.query('answer') AS answers
    FROM
        @xml.nodes('/quizresult/question') AS n (q)
), questions_and_answers AS (
    SELECT ID, questionText, result, answer.query('.') AS answer
    FROM questions
    CROSS APPLY answers.nodes('answer') AS a(answer)
)

और अब

. के साथ प्रश्नों को पुनः प्राप्त करें
SELECT ID, questionText, result 
FROM questions

और जवाब

. के साथ
SELECT ID AS questionID,
    q.answer.value('answer[1]', 'nvarchar(max)') AS answer,
    q.answer.value('answer[1]/@number', 'int') AS number,
    q.answer.value('answer[1]/@value', 'int') AS val,
    q.answer.value('answer[1]/@chosen', 'bit') AS chosen
FROM questions_and_answers AS q


  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. एसएमओ असेंबलियों में .नेट फ्रेमवर्क 4.0

  3. SQL सर्वर 2008 स्थापना

  4. एसएसआईएस पैकेज में अस्थायी तालिकाओं का उपयोग करना

  5. आप निबर्ननेट में वर्जनिंग कैसे करते हैं?