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

2024-11-12 07:54:23
推荐回答(5个)
回答1:

楼上那个不行,应该是A没有再找B 而不是连接2个表一起找
楼主你的代码的问题出在when id is null 你都输入ID=10289了
id怎麼会空?
应该是
select case
when A.name is null then
B.name
else
A.name
end name
from (select name from a where id = '10289') A,(select name from b where id = '10289') B

回答2:

select top 1 name from(
select name, 1 as xh from a where id=10289
union all
select name, 2 as xh from b where id=10289
) order by xh

回答3:

select t.id,t.name from
( select id,name from a union select id,name from b) t
group by t.id,t.name

这样查询每个记录只会存在一条,这样查询出来的是最全的,不过不知道那个是A 表那个是B表的,它查询出来的是A.B的汇总,但是是唯一的

回答4:

select
case
when a.id is not null then a.name
else b.name end
from
a FULL JOIN b ON (a.id = b.id )
where
a.id='10289' OR b.id='10289'

回答5:

你的case when 后面的字段错了 应该是name 下面的才是正确的

select
case when name is null then (select name from b where id='10289')
else (select name from a where id='10289') end
from a
where id='10289'