Oracle procedure update 判断

1.目的 当我们想要达到这样的目的:如果test表的行数大于0,则进行修改: if(select count(*) from test)>0 thenUPD

1.目的

当我们想要达到这样的目的:如果test表的行数大于0,则进行修改:

if(select count(*) from test)>0 thenUPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' ;commit;
end if;

但procedure里不支持此种用法,所以我们只能通过变形来实现目的

2.实现

我们通过如下的方式来进行变形操作,已到达目的

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 
and (select count(*) from test)>0;commit;

其实逻辑并不难,只是提笔忘字,在学习或工作时想不起来,所以在此记录.

3.变形

我们可以实现一系列的变形操作,应对不同的业务:

/*如果满足条件,则=,如果不满足条件,则<*/
select * from Person
where((a = b and (select count(*) from test)>0)or(a < b and (select count(*) from test)<=0))