Bob*_*ith 2 sql sql-server sql-server-2005
我有一个具有以下算法的SP.
IF <SomeCondition>
BEGIN
SELECT * FROM TABLE1
END
ELSE
BEGIN
SELECT * FROM TABLE2
END
--Union the above with the query below
UNION
SELECT * FROM TABLE3
Run Code Online (Sandbox Code Playgroud)
返回的记录集完全相同.我需要做一个结果集的UNION和另一个查询.
有没有办法在不使用临时表的情况下执行此操作?
怎么样:
SELECT * FROM TABLE1 WHERE <SomeCondition>
UNION
SELECT * FROM TABLE2 WHERE NOT <SomeCondition>
UNION
SELECT * FROM TABLE3
Run Code Online (Sandbox Code Playgroud)
如果您担心两次评估:
DECLARE @condition bit
SET @condition = CASE WHEN <SomeCondition> THEN 1 ELSE 0 END
SELECT * FROM TABLE1 WHERE @condition = 1
UNION
SELECT * FROM TABLE2 WHERE @condition = 0
UNION
SELECT * FROM TABLE3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14355 次 |
| 最近记录: |