前几天,我以为我找到了一种非常优雅的方式来更新一组细胞的一部分。这就是我想出的:
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
我相信我从堆叠问题中得到了这个想法,但我在历史上找不到它。
我似乎无法更新多个单元格,即使子查询单独测试时返回多行。这有什么问题,如何调整它以一次更新多个单元格?
感谢您的帮助。
答案 0 :(得分:0)
好的,我想出了一个答案。我不确定为什么Table Expression在这种情况下不起作用,但这是我想出的:
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字符串的结尾只是一个数值,所以也提出了一些问题。它现在似乎对我有用,所以我已经为我做了。