sql >> Database >  >> RDS >> Sqlserver

Eerste rij overslaan in SQL Server 2005?

U kunt OVER . gebruiken clausule en een rangschikkingsfunctie. Je kunt hier niet rechtstreeks op filteren, dus je hebt een subquery of een algemene tabeluitdrukking nodig, het onderstaande voorbeeld gebruikt de laatste.

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;

Er zal betere ondersteuning zijn voor paginering in de volgende versie van SQL Server (codenaam Denali) met de OFFSET en FETCH trefwoorden.



  1. Rijen in datastore verwijderen op tijdbereik

  2. mysql draaitabeldatum (verticale naar horizontale gegevens)

  3. waarom retourneert executeUpdate 1 zelfs als er geen nieuwe rij is ingevoegd?

  4. Hoe gebruik je een opgeslagen procedure in een kristalrapporten 8.5?