2016-06-23 2 views
0

Ich habe eine SQL-Tabelle, die ein assoziatives Array als Varchar auf diese Weise speichert: "JOE11,BOB7,CORY3,DAVID2". Die Schlüssel sind Alpha, die Werte sind numerisch, Paare sind durch Kommata getrennt. Dies scheint eine dumme Art zu sein, diese Informationen zu speichern, aber ich kann im Moment nichts dagegen tun. Ich muss die Summe der Werte des Arrays (11 + 7 + 3 + 2 = 23, in diesem Beispiel) berechnen und dann diese Berechnung über mehrere Datensätze summieren.SQL: Analysieren und Summieren eines assoziativen Arrays, das als varchar gespeichert wurde

Alle Empfehlungen wären schön.

Antwort

1

Art

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 

Wenn Sie auf niedrigere Version sind, Jeff Moden des DelimitedSplit8k finden() Es ist hier zum Beispiel Multiple group split string in SQL

+0

Ich bin auf SQL Server 2012 – GenuineSmile29

+0

Mit SQL Server 2012 war ich Ich kann das DelimitedSplit8k(), das oben empfohlen wurde, verwenden und es funktionierte. – GenuineSmile29

Verwandte Themen