我想用 SQL 编写一个更新查询,如下所示:
UPDATE A
SET A.PARENT_ID = [ID of another row]
FROM MY_TABLE AS A
我想要做的是,对于将应用此更新的每一行,我希望它[ID of another row]
从如下查询中计算部分:
SELECT A.NAME, B.NAME, MAX(B.ID)
FROM MY_TABLE A, MY_TABLE B
WHERE A.NAME = B.NAME
所以基本上:
- 当它正在更新一行时,它会尝试查找与当前正在更新的行同名的其他行。
- 其中,它将尝试获取具有最高 的行
ID
。 - 然后它会将
PARENT_ID
当前正在更新的行的ID
值更新为它找到的行的值。
在 SQL Server 2008 中执行类似操作的方法是什么?