2011-08-30 42 views
3

我能做到這一點:SQL處理值

SELECT 
    1 AS one, 
    2 AS two, 
    1 + 2 AS three; 

但我想這樣做:

SELECT 
    1 AS one, 
    2 AS two, 
one + two AS three; 

這可能嗎?

回答

4

你可以這樣做:

SELECT one, two, (one+two) as three 
FROM 
(
    SELECT 
     1 AS one 
     2 AS two 
) t; 
+0

+1是的,這是要走的路 - 沒有一個子查詢或CTE,一個**不能**在同一個SELECT中使用列別名 –

+0

謝謝,我之前嘗試過,但我的問題變成了另一種:我的父查詢有幾個連接,我的「一個」和「兩個」列是使用這些值的子選擇連接。這意味着我將不得不在這個SELECT中作爲一個表格進行連接。感謝marc_s btw的解釋! – taff

2

的方法是這樣的:

SELECT one, two, one + two AS 'three' 
FROM (SELECT 1 as 'one', 2 as 'two') myTable 
+0

我太慢了。 – OCary