次のようなクエリがあります。
select data_name
into v_name
from data_table
where data_table.type = v_t_id
通常、このクエリは正確に 1 行を返す必要があります。に一致するものがないv_t_id
場合、プログラムは「データが見つかりません」という例外で失敗します。
これを PL/SQL で処理できることはわかっていますが、クエリでのみこれを行う方法があるかどうか疑問に思っていました。テストとして、私は試しました:
select case
when subq.data_name is null then
'UNKNOWN'
else
subq.data_name
end
from (select data_name
from data_table
where data_table.type = '53' /*53 does not exist, will result in 0 rows. Need fix this...*/
) subq;
...しかし、これは明らかに機能しません(subq
空であることは と同じではないためsubq.data_name is null
)。これは可能ですか、それとも PL/SQL ソリューションをチェックインする必要がありますか?
(オラクル10g)