我正在尝试按以下方式编写查询:
UPDATE Table i2
SET value = 0
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1)
问题是我得到“i2'附近的语法错误。”我猜这是因为它不喜欢给正在更新的表提供昵称,但如果是这样的话,我该如何引用呢?
答案 0 :(得分:6)
更新不仅必须直接在表上,还可以使用From
子句中引用的表中的别名。
UPDATE i2
SET value = 0
FROM Table i2
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1)
答案 1 :(得分:0)
“SET”子句中的“值”是SQL的关键字。此外,您的逻辑似乎正在清除除第一行之外的所有“值”,这是您的目标吗?