gpt4 book ai didi

sql-server - XQuery - 迭代每个属性

转载 作者:行者123 更新时间:2023-12-04 10:23:58 28 4
gpt4 key购买 nike

我正在尝试使用这种结构迭代 XML:

<Query id="Y120-M2-D1-H8-M42-S12-MS276-6676" name="Transactions_ModelGenerator_v_1.0.0.104">
<Description />
<Columns>
<Column caption="Client Code" sorting="None" sortIndex="-1">
<Expr class="ENTATTR" id="c.Number" />
</Column>
<Column caption="Client Name" sorting="None" sortIndex="-1">
<Expr class="ENTATTR" id="c.Name" />
</Column>
<Column caption="Market Code" sorting="None" sortIndex="-1">
<Expr class="ENTATTR" id="r.Number" />
</Column>
<Column caption="Market Name" sorting="None" sortIndex="-1">
<Expr class="ENTATTR" id="r.Name" />
</Column>
</Columns>
<JustSortedColumns />
<Conditions linking="All">
<Condition class="SMPL" enabled="True" readOnly="False">
<Operator id="Equal" />
<Expressions>
<Expr class="ENTATTR" id="c.Number" />
<Expr class="CONST" type="String" kind="Scalar" value="A1B" text="A1B" />
</Expressions>
</Condition>
<Condition class="SMPL" enabled="True" readOnly="False">
<Operator id="Equal" />
<Expressions>
<Expr class="ENTATTR" id="ConversionCurrency" />
<Expr class="CONST" type="String" kind="Scalar" value="EUR" text="EUR" />
</Expressions>
</Condition>
</Conditions>
</Query>

我想遍历列,并替换某些关键字,特别是标题属性。例如,我想用“Cedent”替换关键字“Client”。

我试过写这样的东西:
update #data
set data.modify('
for $col in /Query/Columns[1]/Column/caption
replace value of $col with fn:replace($col, "Client", "Cedent")
where fn:contains($col, "Client")
')

但当然我收到错误我不知道如何解决:
XQuery [#data.data.modify()]: Syntax error near 'replace', expected 'where', '(stable) order by' or 'return'.

我对 XQuery 不是很熟悉。有人可以帮我吗?

最佳答案

   for $col in /Query/Columns[1]/Column/@caption[fn:contains(., "Client")]
let $x := fn:replace($col, "Client", "Cedent")
return replace value of node $col with $x

关于sql-server - XQuery - 迭代每个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60711390/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com