Обнаружение ноля XML в запросе SQL
Я использую MS SQL Server 2008. У меня есть столбец типа XML, в котором я храню результат некоторой сериализации. Когда значение сериализуемого объекта равно nothing
/null
этот результат хранится в базе данных,
<StaticModifiedProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" />
Я строю запрос, который должен определить, представляют ли данные в столбце XML пустой объект или нет. Таким образом, другими словами, различайте, когда столбец имеет вышеуказанное значение или сериализованный объект.
Есть ли какие-либо встроенные функции XML в SQL Server 2008, которые могут это сделать?
1 ответ
Решение
Вот пример для чтения атрибута xsi:nil из элемента верхнего уровня:
declare @t table(x xml);
insert @t values (N'<StaticModifiedProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" />')
select x.value('(StaticModifiedProduct/@xsi:nil)[1]', N'nvarchar(5)') from @t;