2017-01-17 3 views
0

У меня есть таблица Hashtags с колоннами:SQL Server 2016 - Каскадная строка

id, hashtag, count 

В моей хранимой процедуре, я получил строку, как это:

#stack, #overflow, #test 

я должен проверить, если некоторые из hashtags существует и обновляет счетчик, иначе просто вставьте новую строку для каждого хэштега в строке.

Я пытался использовать IN, но не работал для INSERTS.

ответ

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

Спасибо вам, на самом деле работает! –

Смежные вопросы