我在select语句中投影一列。 ("项目"在关系代数意义上。)为了减少代码重复,有没有办法在我的where子句中引用该预计列?或者有更好的方法吗?
示例:
select
(A.Column + A.Column2) * 8 'Column'
from A
where
(A.Column + A.Column2) * 8 < 1000
基本上,我要问的是,如果我们认为列是&#34; namespaced&#34;通过table(其中A是命名空间而A.Column是A命名空间中的列),是:有没有办法引用我们当前在该表的where子句中选择的临时表的命名空间本身?
答案 0 :(得分:2)
你可以做到;
select * from
(
select (A.Column + A.Column2) * 8 as Col from A
) tmp
where Col<1000
答案 1 :(得分:2)
另一种方法是使用cte,common table expression。
with cte as(
select (A.Column + A.Column2) * 8 as [Column] from A
)
Select * from cte
Where [Column] < 1000