我在內部查詢中使用order by子句遇到很大麻煩。
我用這個查詢從數據庫中獲得分頁結果:如何在內部查詢中使用order by子句
;WITH ItemsRank AS
(
select
ROW_NUMBER() OVER(ORDER BY t.CreatedOnDate) AS RowNum,
t.ItemId
from Tickets t
where t.CompanyId = @CompanyId
group by t.ItemId ...
order by t.CreatedOnDate desc -- this makes me trouble
) ,x as (
select ItemsRank.*,
c.CommentText ...
WHERE RowNum > @p_From
AND RowNum <= @p_From + 50
)
select * from x where RowNumComment <= 4
因爲查詢是大我刪除了所有選擇,joing,團體等
如果我在年底把ORDER BY查詢它的工作原理,但不是預期的。
因爲查詢的第一部分應該按降序排列前50個結果。
這是錯誤,我得到:
ORDER BY子句在視圖,內聯函數無效,派生 表,子查詢和公用表表達式,除非TOP或FOR 還指定XML
我在做什麼錯?
是否可以修復此查詢以獲取查詢的第一部分中的訂購商品?
你應該開始把分號放在statemet的末尾:http://sqlserverplanet.com/tsql/why-i-will-begin-using-semicolons-to-terminate-sql-statements –