2015-11-21 26 views
1

我發現這個查詢返回sql服務器中第n個最高工資。爲什麼我得到錯誤「RESULT'附近的語法錯誤」,但是重命名CTE工作正常?

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的

+0

什麼是結果? – Ajay2707

+0

表名是員工... @scaisEdge –

+0

@ Ajay2707我不知道,我只是跟着一個視頻...我做了他所做的,但是當我嘗試更改名稱時,出現錯誤 –

回答

6

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語法 - 哪一個可能會引發這個問題。

相關問題