Du kan använda OVER
klausul och en rangordningsfunktion. Du kan inte filtrera på detta direkt så du behöver till oss en underfråga eller ett vanligt tabelluttryck, exemplet nedan använder det senare.
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;
Det kommer att finnas bättre stöd för sidnumrering i nästa version av SQL Server (kodnamn Denali) med OFFSET
och FETCH
sökord.