增加个判断,判断是否有数据 或者通过游标 来判断数据是否存在。如果没有数据再执行查询下一个表,也可以尝试下面的方式。select a;into i_a;from stu1;where id = 1; exception;when others then;begin;select b;into i_a;from stu2;where id =2;exception when others then;i_a := null;
eend。
一、oracle中如果查询结果为空则执行另外一条查询,或者换一个查询条件语句怎么写
增加个判断,判断是否有数据 或者通过游标来判断数据是否存在如果没有数据。再执行查询下一个表。也可以尝试下面的方式。
select a
into i_a
from stu1
where id = 1;
exception
when others then
begin
select b
into i_a
from stu2
where id =2
;
exception when others then
i_a := null;
end;
end ;
类似于这样,但是得结合业务需求来,但很明显就是所有结果全查了,说不上好不好主要还是看数据主要落在哪个分布上,针对性去调整来优化性能。
否则的话,这种加判断逻辑的,要么通过代码实现(比较想当然的也是比较合适做的),要么通过数据库函数实现(这种不是很合适,明显不是通用的函数。
延伸阅读:
二、SQL是什么
Structured Query Language
‘SQL’是结构化查询语言,是一种用来操作 RDBMS 的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
- SQL语句主要分为:
DQL:数据查询语言,用于对数据进行查询,如select**
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete**
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor - 对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可
- SQL 是一门特殊的语言,专门用来操作关系数据库
- 不区分大小写