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

SQL सर्वर XQuery एक त्रुटि देता है

SQL सर्वर तालिका में प्रत्येक पंक्ति के लिए आपके XPath व्यंजक के कारण अनेक पंक्तियाँ वापस आ सकती हैं। आपको CROSS APPLY . का उपयोग करना होगा और .nodes() . पर कॉल करें वह जानकारी प्राप्त करने के लिए जो आप चाहते हैं:

WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume' AS ns)
SELECT 
    JobCandidateID,
    ResNames.value('(ns:Name.First)[1]', 'nvarchar(100)')
FROM   
    HumanResources.JobCandidate
CROSS APPLY
    [Resume].nodes('/ns:Resume/ns:Name') AS XTbl(ResNames)

वह सभी JobCandidateID . लौटाएगा मान और सभी प्रथम नाम Resume . में परिभाषित किए गए हैं तालिका में प्रत्येक पंक्ति के लिए XML स्तंभ।

यदि आप सुनिश्चित हो सकते हैं कि केवल एक ही होने वाला है <name> अपने XML कॉलम में टैग करें, फिर आप इसे छोटा भी कर सकते हैं:

WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume' AS ns)
SELECT 
    JobCandidateID,
    [Resume].value('(/ns:Resume/ns:Name/ns:Name.First)[1]', 'nvarchar(100)')
FROM   
    HumanResources.JobCandidate



  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. उन पंक्तियों से गैर-डुप्लिकेट मानों का चयन करें जो निर्दिष्ट मिनटों से कम की दूरी पर हों

  4. xquery value() विधि काम नहीं कर रही है और त्रुटि दे रही है

  5. विभाजित डेटा में गुम दिनांक और मान कैसे भरें?