2013-04-10 6 views
0

Есть ли способ использовать вычисляемый столбец более чем один раз, например:Использование вычисляемого столбца несколько раз

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

Спасибо заранее.

+5

"вычисляемый столбец" имеет определенное значение для [ SQL Server] (http://msdn.microsoft.com/en-us/library/ms191250 (v = sql.105) .aspx), и это не так. –

ответ

0

Вы также можете использовать Common Table Expression

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

SELECT col2, 
     col2 - col3 as col4 
FROM CTE 
+1

Это отлично поработало, спасибо. – 2013-04-10 15:04:16

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

Не так. Вы можете использовать его на производной таблице:

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) 
Смежные вопросы