2017-11-08 5 views
0

私は2つの選択ステートメントでdb2でSPをしようとしています。最初のselectがnullを返す場合は、2番目のselectを実行します。 --Ifは最初のリターンを選択するたとえばどのように2つの選択ステートメントのいずれかの結果に応じてdb2

Select a, b, c from table A where... 

Select a, from table B where... 

をゼロに私はたくさんのアイデアを試みたが、それらのどれも働きました。

あなたは、この一般的なパターンを使用することができますおかげ

+0

ことを書くための簡単な方法です。あなたは何を試しましたか?その結果に何が間違っていましたか? – jmarkmurphy

+0

私はIF EXISTの操作を試みましたが、うまくいきませんでした。たぶん私はそれだけで間違っていた。最初の選択の結果に変数を設定しようとしましたが、どちらも失敗しました – user3125947

+0

試したコードを表示してください。そして、 "うまくいかなかった"というのは問題の声明ではありません。結果に何が問題なのですか?あなたは何を期待しましたか、代わりに何を得ましたか?この情報で質問を編集してください。 – jmarkmurphy

答えて

0

、もちろん、あなたの2つの結果が、ここで

WITH first AS 
(
SELECT ..result1.. FROM table1 
WHERE ..clause1.. 
) 
SELECT ..result1.. FROM first 
UNION 
SELECT ..result2.. FROM table2 
WHERE 0=(SELECT COUNT(1) FROM first) 
AND 
..clause2.. 
0

に一致するように設定し、適応する必要があります

Select a, from table B where... 
and not exists (select * from table a where...) 
union 
select a,.. from table A) 
関連する問題