是否可以编写执行以下操作的SQL查询:
Select * From Table1
如果有结果,请退回。否则,请使用替代查询并返回结果:
从表2中选择*
我出现了以下内容,但它似乎不起作用:
IF EXISTS(select * From TableA)
begin
Select * from TableA
end
else
Select * from TableB
是否有一种简单优雅的方法来实现这一目标?
答案 0 :(得分:3)
您可以使用UNION
执行NOT EXISTS
查询:
SELECT * FROM TABLE1
UNION ALL
SELECT * FROM TABLE2 WHERE NOT EXISTS (SELECT * FROM TABLE1)
*假设列和类型相同
答案 1 :(得分:0)
如果两个表的列数相同且列名相同,则使用Union,如下所示。
Select * from TableA
Union
Select * from TableB
如果他们有不同的列名或不同的列数,那么您可以使用下面的代码。
Select Col_1 as col1, col_2 as col2.... From TableA
Union
Select col_a as Col1, col_b as Col2..... From TableB