我有一个基本上实现以下逻辑的代码
select something
from few tables
where not exists (select query with some logic, say L1)
union all
select query with logic L1
如您所见,具有逻辑L1的选择查询正在运行两次。这是一个非常大的逻辑,可能需要一些时间来运行。反正是否重新格式化代码以使执行更好?
答案 0 :(得分:1)
你可以使用CTE。 https://msdn.microsoft.com/en-us/library/ms175972.aspx 例如,像那样的东西;
;With L1 as (Select query with some logic, say L1)
Select Something
from few tables
where not exists (select * from L1)
union all
Select * from L1
答案 1 :(得分:0)
为什么不把它放在一个声明中呢?不知道结构是什么,但这里的想法是:
Select
Something1
,Something2
,Something3
,Case When L1 Is Not Null 'Case1'
Else 'Case2'
End AS Status
FROM Some Table or view