【发布时间】:2015-03-17 06:47:00
【问题描述】:
我有以下 XML 字符串:
<row>
<id>
<old></old>
<new>2151</new>
</id>
<name>
<old></old>
<new>test</new>
</name>
<amount>
<old></old>
<new>62</new>
</amount>
</row>
我需要解析和替换字符串,以便最终结果具有以下格式:
columnname|oldvalue|newvalue^
因此上面的例子看起来像这样:
id||2151^name||test^amount||62^
XML 字符串将始终包含一个row 节点。其中的节点(例如 id、名称、数量等)会有所不同,范围可以从几个节点到 100 多个节点。然而,结构将始终相同。
是否可以直接在 SQL Server 中执行,还是需要使用 CLR 函数才能使用正则表达式?
函数必须是通用的,因为列名会不同。
【问题讨论】:
-
如果你有另一行怎么办?它将连接到第一行还是分开?会有多少个不同的节点(id、name、amount)?
-
@Darka 编辑了我的问题以回答您的问题。
-
Sql server vs clr ??这取决于实际情况。我们不能只看1个小样本数据。如果没有列和没有。的行数较少且不经常使用,那么我们可以使用以下查询。
标签: c# sql-server regex clr sql-server-2014