sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server XQuery returnerer en fejl

Dit XPath-udtryk kan føre til, at flere rækker returneres for hver række i SQL Server-tabellen. Du skal bruge en CROSS APPLY og et kald til .nodes() for at få de oplysninger, du leder 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 burde returnere alt JobCandidateID værdier og alle fornavne defineret i CV XML-kolonne for hver række i tabellen.

Hvis du kan være sikker på, at der kun vil være en enkelt tag i din XML-kolonne, så kan du også forkorte dette til:

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. SQL Developer-scriptoutput afkorter sys_refcursor-bredden

  2. Hvordan forhindrer man racetilstand i Django på INSERT med begrænsende SUM?

  3. Brug af SQL til at finde det samlede antal kunder med over X ordrer

  4. ønsker at vise positive og negative værdier i forskellige kolonner gennem en enkelt forespørgsel