选择将使用的查询/ Oracle中的条件查询

时间:2016-05-30 04:19:08

标签: sql oracle

我有两个查询,query1和query2。我想要做的是,如果返回的query1行为空,则返回query2。是否可以单独使用基本SQL查询?他们有相同的返回列btw,但不同的表源。

例如:

QUERY1:

SELECT name, message
FROM table1

QUERY2:

SELECT name, message
FROM table 2

如果query1为空,则返回name2,来自query2的消息。

2 个答案:

答案 0 :(得分:3)

如果不为空,这将从table1中选择,否则从table2中选择:

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

检查table1是否没有行:

EXISTS (SELECT * FROM TABLE) 

答案 1 :(得分:0)

在这里找到答案:https://stackoverflow.com/a/25122516/3747493

基本上:

SELECT *
  FROM table1
UNION ALL
SELECT *
  FROM table2
WHERE (SELECT COUNT(*) FROM table1) = 0

谢谢你们!