我想询问是否有一种使用T-SQL迭代我的XML数据的简单方法。
我的xml看起来像:
<node_1>
<set attribute4="text">
<CONDS>
<COND variable="a" value="text1" attribute3="text1"> //if a == text1
<COND variable="b" value="text1" attribute3="text1"> //(and)b == text 1(and)
<COND variable="c" value="text1" attribute3="text1"/> //(and)c == text1
<COND variable="c" value="text1" attribute3="text1"/> //(or)c == text2
</COND>
</COND>
<COND variable="a" value="text1" attribute3="text1"> //or a == text1
</CONDS>
</set>
</node_1>
我基本上需要遍历所有<COND>
个节点。实际上,这些节点后来被用作SQL查询条件(WHERE
子句)并评估输入集。 <COND>
元素及其子元素表示AND
条件,并且处于同一级别的<COND>
元素是OR条件。
我的目标是知道如何遍历这些节点。
我想我可以使用像openxml
这样的代码(将整个xml转换为表),cte(获取表和后代)和pivot(将这些字段的行设置为列)然后用于评估我的输入。但这需要大量的循环和指标和/或条件,这使得它容易混淆和难以维护。
注意:node_1是子元素,也可以重复