我有一个名为“ students”的表,该表具有一个名为All_Marks的XML类型的列。每个条目都是All_Marks就是这种样式
<Marks>
<Math>20</Math>
<Science>30</Science>
</Marks>
学生中还有另一列称为Total_Marks。我想对每个学生的XML中的值求和,然后将该值插入该学生各自的Total_Marks列
答案 0 :(得分:0)
您可以尝试以下操作:
UPDATE s1
SET Total_Marks = (SELECT SUM(xc.value('(.)[1]', 'int'))
FROM dbo.Students s2
CROSS APPLY All_Marks.nodes('/Marks/*') AS XT(XC)
WHERE s2.StudID = s1.StudID)
FROM dbo.Students s1
对于dbo.Students
中的每个学生,它计算All_Marks
元素内<Marks>
XML中存储的主题的数值之和,并更新列{{1} },并附上他/她的分数总和。