我在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中正常工作。但它不在甲骨文工作。它显示
SP2-0734: unknown command beginning "IF EXISTS ..." - rest of line ignored.
请帮我将此查询从SQL更改为Oracle。感谢
答案 0 :(得分:0)
SELECT 1 FROM address WHERE new_add=new_add
if @@RowCount > 0
UPDATE address set old_add=old_add
答案 1 :(得分:0)
在两个数据库中,您都可以将查询编写为:
update address
set old_add = old_add
where exists (SELECT * FROM address WHERE new_add = new_add);
根本不需要if
。
然而,这个查询是非感性的。它要么在所有行中为自己设置一列(如果where
中的条件至少匹配一行)。或者,它不更新任何行(如果where
中的条件没有匹配的行)。在任何一种情况下,都没有真正发生。