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 ('https://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
WITH XMLNAMESPACES ('https://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