Che cos’è l’impaginazione?

L’impaginazione è il processo di divisione di dati di grandi dimensioni in set di dati più piccoli in pagine discrete. È ampiamente utilizzato nelle applicazioni web.

Come funziona l’impaginazione in MS SQL Server?

In MS SQL Serverpossiamo ottenere la funzionalità di impaginazione utilizzando OFFSET e FETCH clausole con ORDER BY in SELECT dichiarazione.

  • OFFSET: rappresenta il numero di righe da ignorare dal set di risultati. Dovrebbe essere 0 o maggiore di 0.
  • FETCH:rappresenta il numero di righe da visualizzare nel risultato.

Punti importanti da considerare durante l’utilizzo OFFSET e FETCH:

  • ORDER BY è obbligatorio per l’utilizzo OFFSET FETCH Clausola.
  • OFFSET è obbligatorio e FETCH è facoltativo.
  • TOP la clausola non può essere utilizzata in SELECT dichiarazione con OFFSET FETCH.

Vediamo degli esempi:

Nell’esempio seguente, OFFSET 0 e FETCH NEXT 5 ROWS kip no righe e restituisce le 5 righe successive nel set di dati, ovvero le prime 5 righe nel set di dati.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 0 e FETCH NEXT 5 RIGA

Nell’esempio seguente, OFFSET 3 e FETCH NEXT 5 ROWS significa saltare le prime 3 righe e restituire le 5 righe successive nel set di dati.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 3 e FETCH NEXT 5 RIGAPageNumberRowsOfPage

  • PageNumber — Rappresenta il numero di pagina
  • RowsOfPage — Rappresenta il numero di righe in una pagina

Ora, per calcolare il numero di righe da saltare quando si passa alla pagina successiva, si formula(@PageNumber-1) * @RowsOfPage viene utilizzato in OFFSETe il numero di righe verrà restituito FETCH.

Qui, PageNumber è 2 e RowsOfPage è 5, il che significa restituire il set di dati per la pagina numero 2.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

OFFSET (@PageNumber-1) * @ RowsofPage e FETCH NEXT @RowsOfPage ROWS

Conclusione

Nell’applicazione real-time questa logica completa può essere scritta nella stored procedure che viene richiamata cliccando il pulsante “Avanti” o numero di pagina nell’applicazione web per visualizzare l’insieme dei record nella pagina.

Tutto il Come impaginare in MS SQL Server utilizzando OFFSET e FETCH [Simple] i metodi che ho menzionato hanno funzionato bene. Grazie per aver letto e per favore commenta di seguito con i tuoi pensieri su questo articolo e condividi signalfix.net con i tuoi amici.