-1

テーブル a と b があり、それぞれに平均フィールドがあります。データは一度に 1 つのテーブルにのみ挿入されるため、いずれかの平均フィールドが一度に NULL のままになる可能性があります。nullではない2つのテーブルのいずれかのフィールドの値を取得するにはどうすればよいですか

Table a
id  average labref
1   325      123

Table b
id  average labref
2    null    123

テーブル a が平均値を持つテーブルである場合、その値を選択し、次にテーブル b が平均値を持つテーブルであり、テーブル 1 の平均が null である場合、テーブル a の値を選択します。両方とも、labref と呼ばれる同じ ID が使用されています。

4

5 に答える 5

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 に答える
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 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 に答える
-1

これを試すことができます

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

IS NOT NULL2回使用するかどうかはわかりません。

于 2012-10-25T09:25:24.190 に答える
-1

次の方法で IFNOTNULL() 関数を使用できますか。

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

私はこれをテストしておらず、頭のてっぺんから外れています。

于 2012-10-25T09:18:38.260 に答える