Я использую Предприятие SQL Server 2008 года на Windows Server 2008. Я хочу выбрать результат лучших 11 к лучшим 20 (например, Я только интересуюсь 11-м к 20-му результату). Какие-либо идеи, как записать этот запрос в tsql эффективно?
заранее спасибо, George
К сожалению, SQL Server не предлагает ничего похожего на синтаксис MySQL OFFSET
. Однако вы можете попробовать использовать производную таблицу следующим образом:
SELECT some_field
FROM (
SELECT some_field, ROW_NUMBER() OVER (ORDER BY some_id) AS rownum
FROM table
) AS t
WHERE t.rownum BETWEEN 11 AND 20
Предполагая поле сортировки PK,
select top 10 * from MyTable
where PK not in (select top 10 PK from Mytable order by PK)
order by PK
Edit: вот вариант
select top 10 * from
(select top 20 * from MyTable order by PK) as MySelection
order by PK desc