为什么" AS emp"在此查询中需要

时间:2016-01-27 17:12:53

标签: sql sql-server-2005

SELECT TOP 1 salary FROM (    
   SELECT TOP 3 salary     
   FROM employees     
   ORDER BY salary DESC) AS emp  
ORDER BY salary ASC

为什么" AS emp"用于查询?如果不使用AS,查询将无效。

2 个答案:

答案 0 :(得分:1)

原因是您需要为子查询添加别名。可以将子查询视为创建另一个表供您选择,以及查询尝试引用它。它可能不完全是正在发生的事情,但它总是有助于我证明为什么我必须在最后添加别名。

答案 1 :(得分:1)

此要求仅在Documentation on the FROM clauseAS emp

中简要说明
  

当使用派生表,行集或表值函数或运算符子句(如PIVOT或UNPIVOT)时,所需的table_alias 在结尾处子句是所有列的关联表名,包括返回的分组列。

因此,在查询中使用AS的原因是SQL Server需要它。

您也可以在不使用AS关键字的情况下对其进行别名(.caselist { padding: 0; margin-top: 2px; background-color: #63a0d4; color: #fff; height: 3.0em; padding-top: 0.5em; vertical-align: middle; } .caselink-search { display: block; padding-top: 5px; } .case-info { padding-top: 0.5em; margin-top: 11px; background-color: #f2f2f2; border: 1px solid #b3b3b3; color: #000; height: 3.0em; }关键字是可选的)。