-1

我有表 a 和 b,每个都有一个平均字段。一次仅将数据插入其中一个表中,因此任何一个平均字段都可以在给定时间保持为空。如何检索两个表中任一字段中不为空的值

Table a
id  average labref
1   325      123

Table b
id  average labref
2    null    123

如果表 a 是具有平均值的值,我选择该值,如果下一个时间表 b 是具有平均值的 a 并且表一是平均值为空,我选择表 a 的值。他们都使用了相同的 ID,称为 labref!

4

5 回答 5

0
select average from (
select average from tablea
union
select average from tableb) a

where average is not null

或者

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
于 2012-10-25T09:09:39.050 回答
0
SELECT 
    IF(a.average IS NULL, b.average, a.average) AS average 
FROM 
    a, b 
where a.id = b.id
于 2012-10-25T09:12:26.017 回答
0

尝试:

select labref, max(average) from
(select labref, average from a union all 
 select labref, average from b) ab
group by labref
于 2012-10-25T09:36:47.700 回答
-1

您能否按以下方式使用 IFNOTNULL() 函数:

select IFNOTNULL(average,(select average from b)) from a 

我还没有测试过这个,我想不通。

于 2012-10-25T09:18:38.260 回答
-1

你可以试试这个

select average from a, b where a.average IS NOT NULL and b.average IS NOT NULL

我不确定是否使用IS NOT NULL两次。

于 2012-10-25T09:25:24.190 回答