2016-05-30 15 views
1

私はquery1とquery2の2つのクエリを持っています。私がしたいのは、query1の返された行が空の場合、代わりにquery2を返すことです。それは基本的なSQLクエリだけを使用して可能ですか?同じ戻り列btwを持ちますが、テーブルソースは異なります。使用するクエリの選択/ Oracleでの条件付きクエリ

例:

Query1を:

SELECT name, message 
FROM table1 

QUERY2:Query1をが空の場合

SELECT name, message 
FROM table 2 

、QUERY2からのメッセージを名前を返します。

+0

@superginoあなたがしたいことをもう少し詳しく説明できますか?テーブル1に1行、テーブル2に100がある場合は、table1の1行だけが必要です。 table1が空の場合のみtable2から選択します – EoinS

答えて

3

空でない場合、これはそうでない場合は表2から選択し、TABLE1から選択します:TABLE1が行を持っていない場合

SELECT * FROM table1 
WHERE EXISTS (select * from table1) 
UNION ALL 
SELECT * FROM table2 
WHERE NOT EXISTS (select * from table1) 

このチェック:

EXISTS (SELECT * FROM TABLE) 
+0

これも機能します。ありがとう! – superigno

+0

'union all'を使うべきです –