我想在WHERE子句上使用SELECT进行更新。不幸的是,我搜索了唯一的例子,我发现在哪里设置UPDATE的值作为SELECT的结果。使用SELECT更新
只是要清楚,我不是在寻找这样的事情:
UPDATE Users
SET AccountId = (
SELECT RIGHT(lastName, 5) + RIGHT(UserId, 6)
FROM Users
)
我想要做的是这样的:
update cr_produtos set pr_ativo = 'N' where column = (select * from cr_produtos
left join cr_produtomov_2 on pr_codebar = mo_codebar
where mo_codebar is null and pr_estoqueatual = 0)
我目前使用IB专家。
您的语法无效,很清楚。你不能使用WHERE SELECT;它会是WHERE columnName =(SELECT ...)。'你的代码会变成'WHERE =(SELECT keyfield FROM ...)'或'WHERE IN(SELECT keyfields FROM ...) 。这也与Delph无关;这完全是一个SQL问题。你从Delphi代码执行语句的事实是无关紧要的。我已经删除了Delphi标签。 –
是的,我知道语法错了。我想我对这个问题没有说清楚,对此抱歉。 我一直在使用WHERE IN(SELECT keyfields FROM),但使用*而不是字段。谢谢你,并为新秀的错误感到抱歉。 :) –