SQL Server 2016 - 连接字符串

时间:2017-01-17 23:12:14

标签: sql sql-server sql-server-2016

我有一个表Hashtags,其中包含列:

id, hashtag, count

在我的存储过程中,我收到了这样的字符串:

#stack, #overflow, #test

我必须检查是否存在一些主题标签并更新计数,否则只需为字符串中的每个主题标签插入一个新行。

我试图使用IN但不适用于INSERTS。

1 个答案:

答案 0 :(得分: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);