我有一个SQL表,以这种方式将关联数组存储为varchar:"JOE11,BOB7,CORY3,DAVID2"
。键是alpha,值是数字,对用逗号分隔。这似乎是一种存储这些信息的愚蠢方式,但我目前无法做任何事情。我需要计算数组值的总和(11 + 7 + 3 + 2 = 23,在本例中),然后在多个记录中对该计算求和。
任何建议都很可爱。
答案 0 :(得分:1)
有点
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