Oracle 9i で、次の結果が「abc」になるのはなぜですか?
select 'abc ' || (select txt from
(select 'xyz' as txt from dual where 1=2))
from dual
これは「abc xyz」を生成しますが:
select 'abc ' || (select txt from
(select count(*), 'xyz' as txt from dual where 1=2))
from dual
サブクエリに count(*) を追加すると動作が異なるのはなぜですか? 述語where 1=2
は、サブクエリの結果を除外する必要がありますか?