为什么我收到错误“RESULT'附近的语法不正确”,但重命名CTE工作正常?

时间:2015-11-21 12:52:06

标签: sql sql-server sql-server-2012

我在sql server中找到了返回第n个最高薪水的查询。

WITH RESULT
     AS (SELECT salary,
                DENSE_RANK() OVER (ORDER BY salary DESC) AS DENSERANK
         FROM   Employees)
SELECT salary
FROM   RESULT
WHERE  RESULT.DENSERANK = 2 

当我将结果更改为结果时它正在工作,但结果不起作用...为什么?

我正在使用SQL SERVER 2012

1 个答案:

答案 0 :(得分:7)

This issue is also mentioned here。我可以在构建11.0.2100.60(SQL Server 2012 RTM)到11.0.2424.0(累积更新11)上重现这一点

enter image description here

但它已在11.0.3000.0(Service Pack 1)中修复

SQL Server 2012引入了WITH RESULT SETS语法 - 可能推测出这个问题。