7

次のクエリを実行しようとしています。

select a.*, 
    case when NVL (SELECT max(b.field1)
        FROM b
        where b.field2 = a.tbl_a_PK , 'TRUE') = 'TRUE' 
            then 'has no data in b'
            else 'has data in b' end as b_status
from a

私がチェックしたところ、nvl 内の選択は 1 つの値のみを返します (したがって、そこに問題はないはずです)。ただし、「ORA-00936: 式がありません」というメッセージが表示されます

4

3 に答える 3

1

b にレコードが関連付けられている/関連付けられていない a のレコードを検索している場合

select a.*, 
       case when b.field2 is null then 'has no data in b'
                                  else 'has data in b'
        as b_status
from a left outer join b
on a.tbl_a_PK = b.field2;

やるべき

于 2013-05-22T15:45:58.233 に答える