2016-06-23 4 views
0

このようにしてvarcharとして連想配列を格納するSQLテーブルが得られました:"JOE11,BOB7,CORY3,DAVID2"。キーはアルファ、数値は数値、ペアはコンマで区切られています。これはこの情報を保存するための愚かな方法のようですが、私は現時点ではそれについて何もできません。配列の値の合計(この例では11 + 7 + 3 + 2 = 23)を計算し、その計算を複数のレコードに合計する必要があります。SQL:varcharとして格納された連想配列の解析と集計

いずれかのおすすめは素敵でしょう。私がいたSQL Server 2012のでは

答えて

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 

の種類あなたは下のバージョンである場合、それは、例えばここにあるジェフMODENのDelimitedSplit8k() を見つけ、 Multiple group split string in SQL

+0

私はSQL Server 2012の – GenuineSmile29

+0

の午前上記で推奨されているDelimitedSplit8k()を使用することができ、それを動作させました。 – GenuineSmile29

関連する問題