SQLServer の SQLですが
以下のようにしたいのですができませんでした。
DECLARE @TRUE INT = 0;
WITH A       ←─ 1行だけ
  
IF (@TRUE = 1)
BEGIN
 SELECT B
 FROM  C
END
ELSE
BEGIN
 SELECT D
 FROM  E
END
(WITH A)が複数個所になるのが嫌のですが
以下のようにするしかないのでしょうか?
DECLARE @TRUE INT = 0;
IF (@TRUE = 1)
BEGIN
 WITH  A     ←┐
 SELECT B      │
 FROM  C      │
END          ├ 同じことを複数
ELSE          │ 繰り返す
BEGIN         │
 WITH  A     ←┘
 SELECT D
 FROM  E
END