2016-01-27 51 views
-1
SELECT TOP 1 salary FROM ( 
    SELECT TOP 3 salary  
    FROM employees  
    ORDER BY salary DESC) AS emp 
ORDER BY salary ASC 

爲什麼在查詢中使用「AS emp」?查詢不使用AS不起作用。爲什麼在此查詢中需要「AS emp」

+0

你需要命名你的'sub-select''別無選擇。您正在使用哪個版本的Sql Server –

+1

這被稱爲別名。它爲外部查詢使用的派生表提供了一個名稱。 –

+0

使用sql server 2005 –

回答

1

原因是因爲您需要別名子查詢。將子查詢視爲創建另一個表供您選擇,查詢嘗試引用它。它可能不是正在發生的事情,但它總是幫助我證明爲什麼我必須在最後添加別名。

1

該要求僅簡要地在Documentation on the FROM clause所述,[AS] table_alias

派生表,行集或表值函數,或操作者條款(如PIVOT或UNPIVOT)時,該子句末尾所需的table_alias是返回的所有列(包括分組列)的關聯表名。

所以在查詢中使用AS emp的原因是SQL Server需要它。

您也可以在不使用AS關鍵字的情況下對其進行別名(AS關鍵字是可選的)。