複数のサブクエリを含むクエリを発行しています。2つのサブクエリのいずれかが失敗した場合、クエリは行を返しません。何かが戻ってくる唯一の方法は、両方のクエリが成功した場合です。別のサブクエリが失敗した場合に成功したサブクエリの結果を取得する方法はありますか?クエリの先頭とサブクエリでNVLを試しましたが、成功しませんでした。スカラーサブクエリがnullを返すことは知っていますが、複数の値が必要です。これは、スキーマの変更/ UNIONがオプションではない、はるかに大きなものから抽出した再現可能なサンプルクエリです(少なくとも私はそうは思いません)
create table testTBLA(
product VARCHAR2(10),
quantity NUMBER,
code NUMBER
);
INSERT INTO testTBLA VALUES ( 'bottle', 10,3);
INSERT INTO testTBLA VALUES ( 'can', 17, 16);
create table testTBLB(
fruit VARCHAR2(10),
asize NUMBER,
code NUMBER
)
INSERT INTO testTBLB VALUES ( 'melon', 3, 14);
INSERT INTO testTBLB VALUES ( 'apple', 5, 16);
他がnullの場合にいくつかの結果を取得する方法はありますか?
--say code inparam is 16
select fruit, asize, product, quantity from
(select product, quantity from testTBLA where code=16),
(select fruit, asize from testTBLB where code=16)
FRUIT ASIZE PRODUCT QUANTITY
---------- ---------------------- ---------- ----------------------
apple 5 can 17
--say code inparam is 3
select fruit, asize, product, quantity from
(select product, quantity from testTBLA where code=3),
(select fruit, asize from testTBLB where code=3)
FRUIT ASIZE PRODUCT QUANTITY
---------- ---------------------- ---------- ----------------------
0 rows selected