1

我正在使用如下查询:

SELECT C1, C1+C2,C (C1+C2)*C3 FROM T1 WHERE C2='XX'

现在,第二列的公式是 C1+C2,第三列是第二列乘以 C3。所以,我想知道的是,如果这样的事情是可能的:

SELECT C1,C1+C2 AS NEWC, NEWC*C3 FROM T1 WHERE C2='XX'

这个查询看起来微不足道,但实际上我有一个巨大的 4 行查询,如果有的话,我想使用一个出路,因为由于重复前面列中已经说明的公式,查询被毫无意义地延长了。

4

1 回答 1

5

您可以使用子查询来删除重复的代码:

SELECT C1, NEWC, NEWC*C3
  FROM (SELECT C1, C1+C2 NEWC, C3 
          FROM T1 
         WHERE C2='XX')

有时,可以通过将子查询移至WITH子句来提高可读性:

WITH intermediate_result AS (
   SELECT C1, C1+C2 NEWC, C3 
     FROM T1 
    WHERE C2='XX'
)
SELECT C1, NEWC, NEWC*C3 
  FROM intermediate_result
于 2012-07-18T07:46:57.203 回答