我有一些代码可以从xml创建临时表:
INSERT INTO @tblPostitions(PosId,OtherId,Status)
SELECT
T.P.value('(PosId)[1]','INT'),
T.P.value('(OtherId)[1]','INT'),
T.P.value('(Status)[1]','TINYINT'),
FROM @XML.nodes('General/Positions/Position') AS T(P)
它就像一个循环。
我有这种情况。我希望在中创建新行时更改该值 @tblPostitions
什么时候 Status = 1
,更改为 2
如果不同,保持不变
xml格式:
<General>
<Positions>
<Position>
<PosId>1</PosId>
<OtherId>2</OtherId>
<Status>1</Status>
</Position>
<Position>
<PosId>2</PosId>
<OtherId>3</OtherId>
<Status>2</Status>
</Position>
<Position>
<PosId>3</PosId>
<OtherId>6</OtherId>
<Status>1</Status>
</Position>
</Positions>
</General>
2条答案
按热度按时间gjmwrych1#
我们可以用iif
dddzy1tm2#
这里与临时表或xml无关。它只是根据一个条件选择不同的值。
为了使它容易理解,我宁愿用
Case
跟随: