sql语句判断一张表的某字段为空,然后查找另外一张表的数据,怎么写?

两张一模一样的表a和b,字段id和name。
现在要求查a表里面的数据,如果a里面没有此数据,则查b表里面的数据,这个怎么实现?
我写了一个查name的,貌似不行:
select case when id is null then (select name from b where id='10289')
else (select name from a where id='10289') end
from a
where id='10289'

请大家帮帮忙!
或者怎么判断一个数据存不存在于这个表内?

第1个回答  2011-08-16
试试我的存储过程如何?
CREATE OR REPLACE PROCEDURE A_SEL_B
AS
name varchar2(20);
tmp varchar2(10);
BEGIN
select count(1) into tmp from a where a.id='10289';
if tmp=0 then
select b.name into name from b where b.id='10289';
else
select a.name into name from a where a.id='10289';
end if;
DBMS_OUTPUT.PUT_LINE(name);
commit;
end;如果我的代码执行无报错,那么
BEGIN
A_SEL_B;
END;
试试吧,有问题可以继续问我~

...如何实现查询一张表的结果为空时,转而查询另一张表的另个字段?
select a, rownum from stu1 where id=1 union all select b from stu2 where id=2 ) a ) where rn =1 类似于这样,但是得结合业务需求来,但很明显就是所有结果全查了,说不上好不好主要还是看数据主要落在哪个分布上,针对性去调整来优化性能 否则的话,这种加判断逻辑的,要么通过代码实...

sql查询中如果空值,如何查询另外一个表中相关字段
select isnull(isnull((select 电话 from t1 where 条件),(select 电话 from t2 where 条件)),(select 电话 from t3 where 条件))是全列出来啊 问题要说清楚 select id,姓名,isnull(isnull(t1.电话,(select 电话 from t2 where t2.id=t1.id)),(select 电话 from t3 where t3.id=t1.i...

...字段,如果A列为空,则取B列的字段,求大侠的sql语句
) As A From Table

sql中如何再判断一个字段是否为空,如果不为空然后再Select这个字段,这...
select firstName + ISNULL(lastName,'默认值') from employee --要注意的是NULL值与任意值相加都为NULL

sql语句,请问如何根据一个表一个字段内容查询另一个字段的内容
select (select ID from 表 where value in ('21') and ID=a.ID ) from 表 a where value in ('Tom')

SQL在同一表中,当字段值为空时插入另外一个字段中的内容
insert into table (a) select case when a is null then b else a end from table 或 insert into table (a) select isnull(a,b) from table 以上,希望对你有所帮助!

SQL 我想统计 某一个表中的一个字段里所有值为空的数据的数量 如何写...
如果表存在 用 insert into 新表(字段1) select count(*) from 旧表 where 某字段 is null;如果表不存在 create table 新表名 as select count(*) from 旧表 where 某字段 is null;或者 select count(*) into 新表名 from 旧表 where 某字段 is null;...

查询sql 字段为空就执行另一条语句
楼主,我想弄清一个问题:如果Speak_add_time为空就查出Theme表中所有数据?还是查出Theme表中Speak_Theme_id=9的那个Speak_add_time?如果是后面这种情况的话,可以尝试以下sql语句:select case when Speak_add_time is null then (select Speak_add_time from Theme where Speak_Theme_id = 9) ...

mysql查询sql字段如果为空则执行另一条sql语句
sell_time,s.sell_staff FROM sys_user u,sys_org o,test_type t,test_commodity c,test_sell s WHERE u.org<>'' and u.org = o.id AND o.id=t.type_org AND u.username='admin' AND c.com_type = t.type_number AND c.com_number=s.sell_com_number unionSELECT s.id,s....

sql判断字段是否为空
insert into test_null values(1,'123');insert into test_null values(2,'abc');insert into test_null values(3,'');insert into test_null values(4,'456');3、查询表中全量数据;select t.*, rowid from test_null t;4、编写语句,查询表中value为空的记录;select t.*, rowid ...

相似回答