2013-10-22 234 views
0

以下CTE查詢中使用WITH查詢(CTE)運作良好:在SELECT語句

;WITH QResult AS 
(SELECT 
    ROW_NUMBER() OVER (ORDER BY Ad_Date DESC) AS Row, 
    * 
FROM [vw_ads] 
) 
SELECT 
    Co1l, Col2, 
    MAX(Row) OVER() 
FROM QResult 

什麼,我需要的是select top(10)該查詢,我曾嘗試以下

Select top (10) from With ... 

但它拋出以下異常:

關鍵字'with'附近的語法不正確。如果此語句是 公用表表達式,xmlnamespaces子句或跟蹤 上下文子句的更改,則必須以 分號終止上一個語句。

如何從WITH查詢中選擇聚合函數?

+1

(例如,CTE)必須始終* *先使用它的SELECT。我不確定爲什麼使用TOP的查詢偏離了原來的那麼多 - 只需在適當的地方添加「前10名」*而不移動其他任何內容都應該足夠。 – user2864740

回答

2

還沒有嘗試..

;WITH QResult AS (
SELECT ROW_NUMBER() OVER (ORDER BY Ad_Date DESC) AS Row, * FROM [vw_ads]) 
SELECT top(10) 
Co1l, Col2, 
MAX(Row) OVER() FROM QResult 
WITH
+1

TOP 10按什麼排序?沒有ORDER BY,輸出將是任意的和不可預測的。 –