Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多次使用计算列_Sql_Sql Server 2008 - Fatal编程技术网

Sql 多次使用计算列

Sql 多次使用计算列,sql,sql-server-2008,Sql,Sql Server 2008,是否有任何方法可以多次使用计算列,例如: SELECT col1 / 1.1 as col2, col2 - col3 as col4 FROM table1 提前谢谢。不是那样的。您可以在派生表上使用它: SELECT x.col2, x.col2 - x.col3 as col4 FROM ( SELECT col1 / 1.1 as col2, col3 FROM table1 ) x; WITH MyCommonTableExpression (Col2, Col3

是否有任何方法可以多次使用计算列,例如:

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

提前谢谢。

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

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;
SELECT col2, col2-col3 col4
FROM (SELECT col1/1.1 col2, col3 FROM table1) A
您还可以使用交叉应用

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

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

SELECT col2, col2-col3 col4
FROM (SELECT col1/1.1 col2, col3 FROM table1) A
您还可以使用交叉应用

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

您还可以使用
通用表表达式

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

SELECT col2, 
       col2 - col3 as col4 
FROM CTE 

您还可以使用
通用表表达式

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

SELECT col2, 
       col2 - col3 as col4 
FROM CTE 
“computed column”有一个特定的含义,而这不是它。“computed column”有一个特定的含义,而这不是它。