我在select语句中投影一列。(关系代数意义上的“计划”)为了减少代码重复,是否有方法引用“我的where”子句中的投影列?还是有更好的方法来做到这一点?
示例:
select
(A.Column + A.Column2) * 8 'Column'
from A
where
(A.Column + A.Column2) * 8 < 1000
基本上,我要问的是,如果我们认为表中的列是“名称空间”(其中A是名称空间,A.Column是A命名空间中的列),那么是否有一种方法可以引用我们目前在表的where子句中选择的临时表的名称空间?
发布于 2016-10-02 00:06:31
另一种方法是使用cte,通用表表达式。
with cte as(
select (A.Column + A.Column2) * 8 as [Column] from A
)
Select * from cte
Where [Column] < 1000
发布于 2016-10-01 23:40:34
你能做到的;
select * from
(
select (A.Column + A.Column2) * 8 as Col from A
) tmp
where Col<1000
https://stackoverflow.com/questions/39812413
复制相似问题