SQLXML を使用して XML フィールドの要素の値が空のサイズであることを確認する方法はありますか? 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;