2017-01-17 3 views
0

私は列を持つテーブルHashtagsを持っている:SQL Serverの2016 - 連結した文字列

id, hashtag, count 

私のストアドプロシージャでは、私はこのような文字列を受け取っ:

#stack, #overflow, #test 

私はいくつかのかどうかを確認する必要がありますハッシュタグが存在し、カウントを更新します。それ以外の場合は、文字列の各ハッシュタグに新しい行を挿入します。

私はINを使用しようとしていましたが、INSERTの作業はしませんでした。

答えて

3

あなたは新しいstring_splitを使用すると、MERGE文を使用することができますあなたが

DECLARE @input VARCHAR(260) = '#stack,#overflow,#test' 

MERGE hashtags h 
USING (SELECT value FROM string_split(@input, ',')) t 
ON h.hashtag = t.value 
WHEN MATCHED THEN 
    UPDATE SET count = count + 1 
WHEN NOT MATCHED THEN 
    INSERT (hashtag, count) 
    VALUES (t.value, 1); 
+0

おかげで、実際に動作します! –