【问题标题】:Update column with inner join and string interpolation使用内部连接和字符串插值更新列
【发布时间】:2019-06-07 19:30:17
【问题描述】:

我想用一个插入了 table2 列的字符串来更新 table1 列。

我不确定字符串插值是如何完成的。

UPDATE p
SET p.ImagePath = i.img_id --> Here I want something like $"some/url/{i.img_id}" to update the column
FROM dbo.Player AS p
INNER JOIN dbo.Images AS i
ON p.p_id = i.img_event_player_id
where i.img_type = 1

例如,我希望 dbo.Player.ImagePath 列是 some/url/4555

【问题讨论】:

  • 如果URL是一个参数,也许你可以使用绑定变量?见stackoverflow.com/questions/6898611/…
  • 您在寻找SET p.ImagePath = CONCAT('some/url/', i.img_id) 吗?
  • 这是预期的结果 - jsfiddle.net/pwjeL9xv
  • 将详细信息以text@duckhead 的形式放在您的帖子中,并附上示例数据预期结果。请不要链接到 cmets 中的场外资源。

标签: sql sql-server


【解决方案1】:

使用CONCAT()函数可以在img_id前面添加文字some/url/

UPDATE p
SET p.ImagePath = CONCAT('some/url/', i.img_id)
FROM dbo.Player AS p
INNER JOIN dbo.Images AS i ON p.p_id = i.img_event_player_id 
WHERE i.img_type = 1

【讨论】:

  • 像魅力一样工作!谢谢你。我不知道为什么我没有得到这个作为第一个结果,可能是因为我尝试搜索插值而不是串联。
猜你喜欢
  • 2017-08-08
  • 1970-01-01
  • 2015-08-15
  • 2010-10-19
  • 2017-07-11
  • 1970-01-01
  • 2018-02-11
  • 2010-11-19
  • 1970-01-01
相关资源
最近更新 更多