sql >> Database >  >> RDS >> Sqlserver

SQL Server XQuery retourneert een fout

Uw XPath-expressie kan ertoe leiden dat meerdere rijen worden geretourneerd voor elke rij in de SQL Server-tabel. U moet een CROSS APPLY . gebruiken en een aanroep naar .nodes() om die informatie te krijgen die u zoekt:

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)

Dat zou alle JobCandidateID . moeten teruggeven waarden en alle voornamen gedefinieerd in de Resume XML-kolom voor elke rij in de tabel.

Als je er zeker van kunt zijn dat er maar één <name> zal zijn tag in uw XML-kolom, dan kunt u dit ook inkorten tot:

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. oracle PL/SQL hoe bereik ip te berekenen voor IPv6 cidr

  2. Hoe verdiepingen tellen in SQL

  3. org.postgresql.util.PSQLException:FOUT:relatie app_user bestaat niet

  4. T-SQL versus SQL