sql >> Database >  >> RDS >> Sqlserver

Hoe opvragen voor XML-waarden en attributen uit een tabel in SQL Server?

Eigenlijk ben je dicht bij je doel, je hoeft alleen de nodes()-methode te gebruiken om je rijen te splitsen en dan waarden te krijgen:

select
    s.SqmId,
    m.c.value('@id', 'varchar(max)') as id,
    m.c.value('@type', 'varchar(max)') as type,
    m.c.value('@unit', 'varchar(max)') as unit,
    m.c.value('@sum', 'varchar(max)') as [sum],
    m.c.value('@count', 'varchar(max)') as [count],
    m.c.value('@minValue', 'varchar(max)') as minValue,
    m.c.value('@maxValue', 'varchar(max)') as maxValue,
    m.c.value('.', 'nvarchar(max)') as Value,
    m.c.value('(text())[1]', 'nvarchar(max)') as Value2
from sqm as s
    outer apply s.data.nodes('Sqm/Metrics/Metric') as m(c)

sql fiddle-demo



  1. Hoe dubbele waarden in een SQL-tabel te vinden

  2. Hoe Prisma te gebruiken

  3. MAAND() Voorbeelden – MySQL

  4. Stapsgewijs upgradeproces voor R12.2 Upgrade Part -4 (Toepassing van 12.2.x Release Update Pack)