Union All With if/else T-SQL

LB.*_*LB. 3 sql t-sql

我想知道如何使用IF/ELSE语句获得UNION ALL.

例如:

SELECT * FROM A
UNION ALL
SELECT * FROM B
UNION ALL

IF @type = 1
   BEGIN
      SELECT * FROM C
   END
ELSE
   BEGIN
      SELECT * FROM D
   END

UNION ALL

SELECT * FROM E
Run Code Online (Sandbox Code Playgroud)

我得到语法错误.

nvo*_*gel 15

SELECT * FROM A 
UNION ALL 
SELECT * FROM B 
UNION ALL 
SELECT * FROM C WHERE @type = 1
UNION ALL
SELECT * FROM D WHERE @type <> 1 OR @type IS NULL
UNION ALL 
SELECT * FROM E ;
Run Code Online (Sandbox Code Playgroud)