SQL 使用子查询中的值更新多个单元格

SQL updating multiple cells with values from a subquery

前几天,我以为我找到了一种非常优雅的方法来更新一组单元格的一部分。这就是我想出的:

Update mytable
Set ExternalLink = REPLACE (ExternalLink, R.UniqueID, R.ParentUniqueID)
From (
Select u.UniqueID, u.ParentUniqueID, RIGHT (mt.ExternalLink, 7) as EL
From uniqueidtable u
Join mytable mt
On EL = u.ParentUniqueID
Where mt.ExternalLink Like '%stringinurl%' ) R

我相信我是从一个堆栈问题中得到灵感的,但我在我的历史记录中找不到它。

我似乎无法更新一个以上的单元格,即使单独测试时子查询 returns 有几行。这有什么问题?我该如何调整它以一次更新多个单元格?

感谢您的帮助。

好的,我想出了一个答案。我不确定为什么 Table 表达式在这种情况下不起作用,但这是我想出的:

    UPDATE mytable
    SET ExternalLink = REPLACE(Ta.ExternalLink, T.ParentUniqueID, T.UniqueID)
    FROM mytable Ta
    JOIN UniqueIDtable
    ON RIGHT(Ta.ExternalLink, 7) = T.ParentUniqueID
    WHERE ExternalLink LIKE '%stringinurl%' AND ISNUMERIC(RIGHT(Ta.ExternalLink, 7)) = '1';

看来我只是搞乱了替换中 ID 和父 ID 的位置。我也没有指望 ExternalLink 列中 URL 字符串的末尾不是数字值,所以也出现了一些问题。它现在似乎对我有用,所以我已经准备好了。