SQL:对存储为 varchar 的关联数组进行解析和求和

SQL: Parsing and summing an associative array stored as varchar

我有一个 SQL table 以这种方式将关联数组存储为 varchar:"JOE11,BOB7,CORY3,DAVID2"。键是字母,值是数字,对用逗号分隔。这似乎是一种存储此信息的愚蠢方式,但目前我对此无能为力。我需要计算数组值的总和(在本例中为 11+7+3+2=23),然后对多个记录的计算求和。

任何建议都会很好。

有点

Select sum(cast(substring(t2.value,patindex('%[0-9]%',t2.value),20) as int))
from t
cross apply STRING_SPLIT (t.col , ',')  t2 -- sql 2016

如果您使用的是低版本,请查找 Jeff Moden 的 DelimitedSplit8k() 例如,它在这里, Multiple group split string in SQL