Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment interroger les valeurs et attributs XML de la table dans SQL Server ?

En fait, vous êtes proche de votre objectif, il vous suffit d'utiliser la méthode nodes() pour diviser vos lignes, puis obtenir des valeurs :

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)

démo de violon sql