我有一個SQL Server 2008的數據庫列,我們將調用xmlDoc中,包含在以下格式的XML:XML SQL查找和替換
<XMLDoc xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xxx.xxx.xxx">
<Node>
<SubNode>
<SubSubNode>Value, Value, Value</SubSubNode>
<IrrelevantNode></IrrelevantNode>
</SubNode>
...
的SubSubNode
房子的任何地方從0到20+值用逗號隔開。單個值不應包含逗號,但不正確地輸入它們。例如,下面的SubSubNode
是正確的:
<SubSubNode>Value, Value, Value</SubSubNode>
以下SubSubNode
是不正確的:
<SubSubNode>Value, </SubSubNode>
我需要找到並用逗號出現代替單一數值的所有實例:
<SubSubNode>Value</SubSubNode>
因爲SQL不允許ends-with
,starts-with
,或matches
,我只能夠想出以下(這是隻搜索的價值,我沒有對更換工作尚未):
with xmlnamespaces(default 'http://schemas.xxx.xxx.xxx')
select [XMLDoc].value('(/XMLDoc/Node/SubNode/SubSubNode)[1]','varchar(2000)')
from XMLDoc
where [XMLDoc].exist('/XMLDoc/Node/SubNode[1] [contains(SubSubNode[1],", ")]')=1
很明顯,這將使用逗號來選擇所有值,而不是僅使用逗號來表示單個值。
任何協助將是偉大的。