我需要将update
MS SQL Server查询转换为Oracle
我有两个表:
Table1(id int, SaveId int, ChangeId int)
Table2(id int, smSaved int, boldId int)
查询是:
UPDATE
Table1
Set
SaveId=tbl.smSaved
FROM
Table1 tbl1
join Table2 tbl on tbl1.ChangeId=tbl.boldId
在MsSql中,一切正常,但是当我尝试在Oracle中运行时,那是行不通的。我不知道这是怎么回事。
有人可以向我解释我需要更改的内容吗?
尝试这个:
UPDATE table1 SET SaveId =
(SELECT tbl.saved FROM table2 tbl
WHERE tbl.boldId = table1.ChangeId)
WHERE EXISTS(
SELECT tbl.saved FROM table2 tbl
WHERE tbl.boldId = table1.ChangeId
)
查询的第一部分使用tbl.saved的值更新SaveId(我想您只有table2的一行与table1链接。
第二部分(存在)保证两个表之间具有对应关系(如果添加存在,则将NULL放在table2中不存在的行中)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句