Что такое запрос 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
надеюсь это поможет.