7
我有一個查詢中的函數調用,並且該結果必須返回兩個名稱。我們如何爲SQL中的列提供多個別名?
例子:
SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable
我想myFunction的結果在兩個不同的列被返回。這可能沒有在列列表中進行另一個函數調用?
我有一個查詢中的函數調用,並且該結果必須返回兩個名稱。我們如何爲SQL中的列提供多個別名?
例子:
SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable
我想myFunction的結果在兩個不同的列被返回。這可能沒有在列列表中進行另一個函數調用?
你不能直接給一個名稱的兩個別名,但你可以在派生查詢重複列:
SELECT name1, name1 AS name2 FROM
(SELECT myFunction(column1) As Name1 From MyTable) base;
你也可以簡單複製的函數調用。如果函數是確定性的,那麼優化器可能只調用一次。 (但當然,檢查查詢計劃。)
SELECT myFunction(column1) as Name1, myFunction(column1) as Name2 FROM myTable
我猜這就是你的意思。這通常用於需要下拉列表的返回值和顯示值的框架中。例如,
select name as DisplayVal, name as ReturnVal from Table
它不會使兩個函數調用獲得相同的值嗎? – Jenn 2010-07-01 11:08:39
@Jenn,是的。 – 2010-07-01 11:30:11
@Jenn如果函數是確定性的,它只會被調用一次。 – 2010-07-01 12:26:07