我想问一下是否有一种简单的方法可以使用 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(获取表和后代)和数据透视(将这些字段的表行设置为列),然后用于评估我的投入。但这将需要大量的循环和指标和/或条件,这使得它变得混乱且难以维护。
注意:node_1 是一个子元素,也可以重复