È possibile utilizzare OVER
clausola e una funzione di posizionamento. Non è possibile filtrare direttamente su questo, quindi è necessario per noi una query secondaria o un'espressione di tabella comune, l'esempio seguente utilizza quest'ultimo.
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
Non ci sarà un migliore supporto per l'impaginazione nella prossima versione di SQL Server (nome in codice Denali) con le OFFSET
e FETCH
parole chiave.
fonte
2011-08-21 11:14:38
Grande ... non ho pensato in questa direzione. Stavo cercando di selezionare con la top 5, quindi da quello che stavo cercando di saltare il primo con la parola 'skip' ... Grazie mille ... :-) –
+1 per aver menzionato una funzione di classifica - che rende questo anche un risposta più utile – Sascha
+1 per le informazioni 'OFFSET' e' FETCH' .. – dotNETbeginner