我使用的是SQL Server 2008,而且对SQL来说相对较新。
我有一个包含数据类型为print([i for i in range(0,10)])
的列的表。此列中的XML包含客户收据的餐馆信息:
xml
在这里做了一些研究后,我学会了如何解析我关心的信息,即<order>
<Check>
<CheckHeader>
<CheckNumber>279084</CheckNumber>
<ServerNumber>186</ServerNumber>
<ServerName>ServerName</ServerName>
<CheckTotal>8.95</CheckTotal>
</CheckHeader>
</Check>
:
<CheckTotal>
我在努力的地方是如何将此已解析的SELECT
order_xml.value('(/order//CheckTotal/node())[1]', 'nvarchar(max)') as CheckTotal
FROM
CheckTable
值添加到此CheckTotal
表中的新列中(当然,确保CheckTable
与相应的匹配行)。
我的CheckTotal
表格如下:
我已经做了什么?
我改变了我的表以添加新列,我尝试创建一个CheckTable
,我在其中添加了解析的@temptTb
值和解析的CheckTable
值。我也解析了CheckNumber
值,以确保当我加入这两个表以尝试更新新列时,我会根据{{1}匹配正确的CheckNumber
当然,事实证明,对于我的数据集CheckTotal
,它们被回收再利用。
现在,我确实希望存在这样的解决方案,我可以立即将解析后的xml CheckNumber
值直接添加到CheckNumber
表中的新列中。
答案 0 :(得分:0)
如果您的XML仅包含一个 {/ 1>}的一个订单 - 您可以尝试这样的事情:
<Check>
如果您的XML在元素层次结构的任何级别包含多个元素,那就有点棘手......