多次使用计算列

时间:2013-04-10 14:41:00

标签: sql sql-server-2008

有没有办法多次使用计算列,例如:

SELECT col1 / 1.1 as col2, col2 - col3 as col4 FROM table1

提前致谢。

3 个答案:

答案 0 :(得分:2)

不是那样的。您可以在派生表上使用它:

SELECT col2, col2-col3 col4
FROM (SELECT col1/1.1 col2, col3 FROM table1) A

您还可以使用CROSS APPLY

SELECT col2,
       col2-col3 col4
FROM table1
CROSS APPLY (SELECT col1/1.1) A(col2)  

答案 1 :(得分:1)

SELECT x.col2, x.col2 - x.col3 as col4
FROM (
    SELECT col1 / 1.1 as col2, col3 
    FROM table1
) x;

WITH MyCommonTableExpression (Col2, Col3)
AS (
    SELECT col1 / 1.1, col3 
    FROM table1
)
SELECT x.col2, x.col2 - x.col3 as col4
FROM MyCommonTableExpression x;

答案 2 :(得分:0)

您也可以使用Common Table Expression

WITH CTE
AS
(
     SELECT col1 / 1.1 as col2, 
            col3
     FROM table1
)

SELECT col2, 
       col2 - col3 as col4 
FROM CTE