繁体   English   中英

SQL Server到Oracle查询转换

[英]SQL Server to Oracle query convert

我在sql server中有这样的代码

IF EXISTS (SELECT * FROM address WHERE new_add=new_add)
    UPDATE address set old_add=old_add);
ELSE
    UPDATE address set old_add=new_add);

它在SQL Server中正常工作。 但是它在oracle中不起作用。 表明

SP2-0734: unknown command beginning "IF EXISTS ..." - rest of line ignored. 

请帮助我将此查询从SQL更改为Oracle。 谢谢

SELECT 1 FROM address WHERE new_add=new_add

if @@RowCount > 0
 UPDATE address set old_add=old_add

在两个数据库中,您都可以将查询编写为:

update address
    set old_add = old_add
    where exists  (SELECT * FROM address WHERE new_add = new_add);

根本不需要if

但是,此查询是无意义的。 它要么在所有行中为其自身设置一列(如果where中的条件至少匹配一行)。 或者,它不更新任何行(如果where的条件没有匹配的行)。 无论哪种情况,都不会发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM