categoryid
空でない場合にのみノードと値を表示したいguid
。さまざまな形式を試しましたが、何も機能しませんでした。結果に if ステートメントを文字列として出力し続けます。コードの一部としてelse条件が必要だと読みましたが、そこに空を入れてstring
もいいですか? これについてオンラインでいくつかの記事とmsdnリファレンスを調べましたが、うまくいきませんでした。何らかの理由で、それは私のif
発言を評価しています。
declare @XML xml = N'
<books>
<book>
<title>Book 1</title>
<categoryid>00000000-0000-0000-0000-000000000000</categoryid>
<author>Chris</author>
<price>10</price>
</book>
<book>
<title>Book 2</title>
<categoryid>DF3D696D-B7A3-44A2-BC7D-1D45745C979B</categoryid>
<author>Spencer</author>
<price>20</price>
</book>
</books>';
select @XML.query(
'<books>
{
for $b in /books/book
return
<book>
{$b/title}
{$b/price}
if(not($b/categoryid = 00000000-0000-0000-0000-000000000000))
then {$b/categoryid}
else
</book>
}
</books>'
);