参考投影/选定的列?

时间:2016-10-01 23:25:10

标签: sql sql-server

我在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子句中选择的临时表的命名空间本身?

2 个答案:

答案 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