How to query for Xml values and attributes from table in SQL Server?

前端 未结 4 1210
野趣味
野趣味 2020-11-30 21:57

I have a table that contains a Xml column:

SELECT * 
FROM Sqm

\"enter

4条回答
  •  春和景丽
    2020-11-30 22:08

    Actually you're close to your goal, you just need to use nodes() method to split your rows and then get values:

    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

提交回复
热议问题