将列从数字字符串转换为选择语句的小计

Moh*_*oub 2 sql-server select

这可能非常基本,但我一直在努力弄清楚。我环顾四周,但找不到任何类似的问题。我正在使用 SQL Server 2008 R2

我有一个观点:

ID  |           VALUE
1   | 151;181;179;185;160;187
2   | 185;160
3   | 151;181;179;185;150
4   | 185;160;187
5   | 187
Run Code Online (Sandbox Code Playgroud)

我想要一个选择语句来产生这个结果:

ID  |           VALUE
1   |           1043
2   |           345
3   |           846
4   |           532
5   |           187
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 5

这绝对不是一个好的数据模型。

如果你坚持使用它,你可以使用

SELECT ID, 
       X.value('sum(/x/text())', 'FLOAT') as Value    
FROM YourView
CROSS APPLY (VALUES(CAST('<x>' + REPLACE(VALUE, ';', '</x><x>') + '</x>' AS xml))) V(X)
Run Code Online (Sandbox Code Playgroud)

在线演示