Общее табличное выражение и сводка - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь выполнить SQL-запрос, но я не могу что-то сделать. Я хочу выполнить разбиение по страницам, используя row_number в этом запросе, но я не могу понять, что мне нужно будет поместить в выражение «row_numberween». Любая помощь приветствуется.

  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)

1 Ответ

3 голосов
/ 23 марта 2011

Вы не можете использовать row_number в предложении where, поэтому нужно вкладывать CTE.(Очевидно, вы могли бы просто использовать TOP (25) вместо этого, если вы хотите первые 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...