Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ignorer la première ligne dans SQL Server 2005 ?

Vous pouvez utiliser OVER clause et une fonction de classement. Vous ne pouvez pas filtrer cela directement, vous avez donc besoin d'une sous-requête ou d'une expression de table commune, l'exemple ci-dessous utilise cette dernière.

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;

Il y aura un meilleur support pour la pagination dans la prochaine version de SQL Server (nom de code Denali) avec le OFFSET et FETCH mots-clés.