sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server XQuery returnerar ett fel

Ditt XPath-uttryck kan leda till att flera rader returneras för varje rad i SQL Server-tabellen. Du måste använda en CROSS APPLY och ett anrop till .nodes() för att få den informationen du är ute efter:

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)

Det borde returnera alla JobCandidateID värden och alla förnamn definierade i CV XML-kolumn för varje rad i tabellen.

Om du kan vara säker på att det bara någonsin kommer att finnas en enda taggen i din XML-kolumn, så kan du också förkorta denna till:

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. Vad är motsvarigheten till 'beskriv tabell' i SQL Server?

  2. Hur man säkerhetskopierar eller skapar en ny tabell från befintlig SQL Server-tabell i SQL Server - SQL Server / TSQL Tutorial Del 105

  3. MySQL Workbench - Anslut till en lokal värd

  4. jQuery AJAX få MySQL-data returnerar hela index.html