Что такое запрос SQL Server 2008 для извлечения записей из представления SQL на основе номеров строк?

Если у меня есть SQL-представление, состоящее из 1000 записей, я хочу получить записи в диапазоне от 20 до 500. Каков запрос для этого?

Или же

Есть ли способ добавить столбец как rownumber в представлении?

1 ответ

Решение

Для этого используйте функцию row_number, доступную в SQL, например

WITH tbl AS
(
    SELECT
       .. ,
        ROW_NUMBER() OVER (ORDER BY ..) AS RowNumber
    FROM
        yourtable
)
SELECT
    ..
FROM
    tbl
WHERE
    RowNumber BETWEEN 20 AND 500

обновления:

Что касается производительности запроса, пожалуйста, проверьте это тоже,

    select .. from (SELECT
      .. , Row_Number() over (order by ..) as rownumber

    FROM
        yourtable) as A
where
    rownumber BETWEEN 20 AND 500

надеюсь это поможет.

Другие вопросы по тегам