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

Lok*_*lli 1 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 
Run Code Online (Sandbox Code Playgroud)

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

我正在使用SQL SERVER 2012

Mar*_*ith 7

这里也提到了这个问题.我可以在构建11.0.2100.60(SQL Server 2012 RTM)到11.0.2424.0(累积更新11)上重现这一点

在此输入图像描述

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

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