我有表a和b,每个都有一个平均字段。数据一次只插入其中一个表中,因此任何一个平均字段在一个给定时间可以保持为空。如何检索两个表中非空的任一字段中的值
Table a
id average labref
1 325 123
Table b
id average labref
2 null 123
如果表a是具有平均值的那个,我选择该值,如果下一次表b是具有平均值的a并且表1是average是null,则我选择表a的值。它们都使用相同的id,称为labref!
答案 0 :(得分:0)
select average from (
select average from tablea
union
select average from tableb) a
where average is not null
OR
select CASE WHEN a.average is null then b.average else a.average end average from tablea a inner join table b
on a.labref=b.labref
答案 1 :(得分:0)
SELECT
IF(a.average IS NULL, b.average, a.average) AS average
FROM
a, b
where a.id = b.id
答案 2 :(得分:0)
尝试:
select labref, max(average) from
(select labref, average from a union all
select labref, average from b) ab
group by labref
答案 3 :(得分:-1)
您可以通过以下方式使用IFNOTNULL()函数:
select IFNOTNULL(average,(select average from b)) from a
我没有对此进行过测试,而且我已经脱颖而出了。
答案 4 :(得分:-1)
你可以试试这个
select average from a, b where a.average IS NOT NULL and b.average IS NOT NULL
我不确定是否会使用IS NOT NULL
两次。