有什么方法可以在MS-Access SQL中创建一个类似于这样的语句吗?
IF (STATEMENT)
SELECT * FROM tbl1
ELSE
SELECT * FROM tbl2
我正在处理一个遗留数据库,能够这样做将有助于优化一个深度嵌套的查询,该查询的根部有一个UNION ALL。通过删除这个在99%的情况下不需要的union,运行时间大大减少。
我已经研究和实验了2天,到目前为止,我找到的最接近工作的东西是在Transact SQL中运行IF语句的BEGIN和END语句,但不幸的是,我没有找到任何Ms-Access SQL的东西。
任何帮助都是非常感激的。
你可以使用 union all
,假设两个表的列数相同。
select *
from tbl1
where <statement>
union all
select *
from tbl2
where not <statement>