Есть ли способ проверить, что значение элемента в поле XML имеет пустой размер, используя SQLXML?Предположим, у меня есть следующие данные в столбце Conf
таблицы Test
:
<Conf>
<UserData>
<data type="str" value="" />
</UserData>
</Conf>
. Я могу проверить, существует ли data
, используя следующий запрос SQL:
SELECT Test.Conf.exist('/Conf/UserData/data') FROM Test;
Но как я могу проверить, что data
имеет пустой value
?Это может быть что-то вроде следующего, но это не работает:
SELECT Test.Conf.value('(/Conf/UserData/data/@value)[1]', 'nvarchar(max)')='' FROM Test;
Мое окончательное решение - использовать следующий оператор SQL:
SELECT Test.Conf.value('string-length(/Conf[1]/UserData[1]/data[1]/@value)', 'int') FROM Test;