2011-03-23 41 views
0

Iam試圖在SQL查詢,但我不能做一些事情。我想通過在此查詢中使用row_number做分頁,但我無法弄清楚我將不得不把「row_number之間」statement.Any幫助非常感謝。公用表表達式和樞軸

WITH cte_ana 
    AS (SELECT movie_id, 
       id, 
       tag_id 
     FROM dt_movieTag) 
SELECT Kayit.*, 
     ROW_NUMBER() OVER (ORDER BY movie_id) as RowNum 
FROM cte_ana PIVOT(MAX(id) FOR tag_id IN ([3], [5], [9]))AS Kayit 
where Kayit.[3] is not null 
     and kayit.[5] is not null 
     and kayit.[9] is not null 
order by movie_id 

例如,我想這個從這個查詢只選擇幾個數據(其中ROWNUM介於0和25)不能使用row_numberwhere子句所以需要嵌套的CTE

回答

3

。 (顯然,如果您想要第一行 25行,您可以使用TOP (25))。

WITH cte_ana 
    AS (SELECT movie_id, 
       id, 
       tag_id 
     FROM dt_movieTag), 
cte2 AS 
(   
SELECT Kayit.*, 
     ROW_NUMBER() OVER (ORDER BY movie_id) as RowNum 
FROM cte_ana PIVOT(MAX(id) FOR tag_id IN ([3], [5], [9]))AS Kayit 
where Kayit.[3] is not null 
     and kayit.[5] is not null 
     and kayit.[9] is not null 
) 
SELECT * 
FROM cte2 
WHERE RowNum <= 25  
order by movie_id 
+0

謝謝馬丁,這可以幫助我 – slayer35 2011-03-23 18:35:35