oracle if 后可以给多个条件不?
比如:if (a<>1 or b<>2 or c<>3) then ...
我 这样写,条件不成立仍然执行了then后面的语句
补充:if n>0 then
if(a<>1 or b<>2 or c<>3) then
....
end if;
else
...
end if;
这样写的,把嵌套在里面的if拿到最外层好像就对了,这样写法有问题?
追问:就是,全都相等的时候,还是执行了后现的
答案:这样的语法肯定是可以的。
关键是你的or,是不是你的逻辑分析出了问题?
你的这个判断,只有一种情况,会不执行then后边的情况,就是a = 1 同时 b = 2同时 c = 3的时候,否则,都会执行then后边的语句。
是不是你的逻辑出问题了?
出了a = 1 and b = 2 and c = 3,那么其他时候,都符合你这个判断。
你看看你所说的条件不成立的数据是什么,如果有困惑,可以把你指的这条数据贴出来。
是a = 1 and b = 2 and c = 3么?
其他:请说明白。是查询增加条件,还是字段的约束增加条件。如果是查询增加条件的话,可以用AND增加多个条件。如果是给字段增加约束的条件的话, CREATE TABLE 表 把例子贴出来,应该是你给的条件不对,多个条件肯定是没有问题的。 可以,你的语句在语法上没问题,但是逻辑上有问题,例如假设当a=1,b=4,c=6时,不符合条件a<>1,但是却符合b<>2 、 c<>3的条件,而你三个条件之间又是or的关系,所以说仍然能执行then后面的语句。像你这种情况,用case when 语句,或者用多个if。 没有问题
上一个:oracle 一个表能放在不同的表空间吗?
下一个:oracle中的commit和rollback