我有两个SQL表:
用户:
UserId
(nvarchar)Tags
(nvarchar)配置文件:
UserId
(nvarchar)Tags
(nvarchar)示例:
用户表:
UserId Tags
----------------------------------
1 tag1,tag2,tag3,tag4
2 tag1,tag2
3 tag1
4 tag2,tag3,tag4
后,Profile表标签应为
个人资料表:
UserId Tags
-------------------------------------
1 ["tag1","tag2","tag3","tag4"]
2 ["tag1","tag2"]
3 ["tag1"]
4 ["tag2","tag3","tag4"]
目前,用户标记存储在User
列的Tags
表中,如下所示,以逗号分隔:tag1,tag2,tag3,tag4
。也可以列出一个单独的标签:tag1
(不存在逗号)。
我需要"移动/复制" “配置文件”表中的标签以下列格式标记列(字符串数组):["tag1","tag2","tag3","tag4"]
所以基本上在我的更新语句中,第二行:SET Profile.Tags = UA.TAGS
,UA.TAGS
值应转换为字符串数组。
UPDATE Profile
SET Profile.Tags = UA.TAGS (UA.TAGS value should be an array)
FROM Profile UP INNER JOIN User UA ON UP.UserId = UA.UserId
我是如何实现这一目标的?
答案 0 :(得分:2)
UPDATE Profile
SET Profile.Tags = '["'+ REPLACE(UA.TAGS,',','","') + '"]'
FROM Profile UP
INNER JOIN User UA
on UP.UserId = UA.UserId