2016-05-30 133 views
1

我有兩個查詢query1和query2。我想要做的是,如果query1的返回行爲空,則返回query2。這是可能使用基本的SQL查詢單獨?他們有相同的返回列順便說一句,但不同的表源。選擇將使用哪個查詢/ Oracle中的條件查詢

如:

QUERY1:

SELECT name, message 
FROM table1 

QUERY2:

SELECT name, message 
FROM table 2 

如果QUERY1是空的,從QUERY2返回名稱,消息。

+0

@supergino你能解釋一下你想要做的更詳細一點。如果在table1中有一行,而在表2中只有100行,那麼您只需要table1中的1行。只有當table1爲空時,你想從表2中選擇 – EoinS

回答

3

這會從表1,如果不是空的選擇,從表2否則選擇:

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

此檢查表1有沒有行:

EXISTS (SELECT * FROM TABLE) 
+0

這也適用。謝謝! – superigno

+0

你應該使用'union all',因爲這會快一點 –