我有如下查询:
SELECT A.a, A.b, B.c,
(CASE WHEN ... THEN ... ELSE ... END) AS CalculatedValue,
B.d
FROM dbo.TableA A INNER JOIN
dbo.TableB B ON (...)
WHERE (CASE WHEN ... THEN ... ELSE ... END) BETWEEN @DayStart AND @DayEnd
GROUP BY A.a, (CASE WHEN ... THEN ... ELSE ... END), B.c
避免重复多次完全相同的表达式:(CASE WHEN ... THEN ... ELSE ... END)
我想定义一个 CTE 并在 select、where 和 group by 表达式中使用查询此类表CalculatedValue
不幸的是,这不起作用,因为group by
在创建时选择需要已经包含CTE
有没有其他方法可以让我不重复CASE WHEN...
这么多次?