Вы можете использовать OVER
положение и ранжирования функции. Вы не можете фильтровать это напрямую, поэтому вам нужен суб-запрос или общее табличное выражение, в приведенном ниже примере используется последний.
DECLARE @MyTable TABLE
(
ID INT,
Name VARCHAR(15)
)
INSERT INTO @MyTable VALUES (1, 'Alice')
INSERT INTO @MyTable VALUES (2, 'Bob')
INSERT INTO @MyTable VALUES (3, 'Chris')
INSERT INTO @MyTable VALUES (4, 'David')
INSERT INTO @MyTable VALUES (5, 'Edgar')
;WITH people AS
(
SELECT ID, Name, ROW_NUMBER() OVER (ORDER BY ID) RN
FROM @MyTable
)
SELECT ID, Name
FROM people
WHERE RN > 1
Там будет лучшая поддержка пагинацией в следующей версии SQL Server (кодовое название Denali) с OFFSET
и FETCH
ключевых слов.
Отлично ... я не думал в этом направлении. я пытался выбрать с топ-5, затем из того, что я пытался пропустить первое слово «skip» ... Большое спасибо ... :-) –
+1 для упоминания это функция ранжирования - это делает это четным более полезный ответ – Sascha
+1 для 'OFFSET' и' FETCH' информации .. – dotNETbeginner