hobby:development:sql:select:query_0002

Questa è una vecchia versione del documento!


Enumerare i risultati di una query Vai alla mappa
(Come enumerare i record ottenuti da una select)

Serviamoci della seguente tabella di esempio:

USE DbTemp
 
IF OBJECT_ID(N'dbo.tblData', 'U') IS NOT NULL
    DROP TABLE dbo.tblData
 
-- Create table [dbo].[tblData]
PRINT (N'Create table [dbo].[tblData]')
 
CREATE TABLE dbo.tblData (
    IdData INT NOT NULL DEFAULT 0
   ,Code VARCHAR(50) NOT NULL DEFAULT ('')
   ,Description VARCHAR(150) NOT NULL DEFAULT ('')
   ,Data DATETIME NOT NULL DEFAULT (GETDATE())
) 
ON [PRIMARY]

Popoliamo la tabella con alcuni dati di esempio:

USE DbTemp

DECLARE @Row INT = 0;
DECLARE @Code NVARCHAR(7);

DELETE FROM dbo.tblData

WHILE @Row < 200
	BEGIN
		SET @Row = @Row + 1;
		SET @Code = 'CDC' + RIGHT('0000' + CONVERT(NVARCHAR, @Row * 10),4)
		INSERT INTO dbo.tblData (IdData, Code, Description) VALUES
		(
			 @Row * 10
			,@Code
			,'DESCRIPTION ' + @Code
		)
	END;

Eseguiamo una SELECT aggiungendo una colonna valorizzata con il numero di riga

SELECT
     ROW_NUMBER() OVER (ORDER BY IdData ASC) Row
    ,*
FROM dbo.tblData

Eseguiamo una SELECT “paginando” i risultati con 50 righe

DECLARE @From INT = 50;
DECLARE @To INT = 100;
WITH PageTable AS
(
	SELECT
	     ROW_NUMBER() OVER (ORDER BY IdData ASC) Row
	    ,*
	FROM dbo.tblData
)
SELECT * FROM PageTable
WHERE Row BETWEEN @From AND @To;

  • hobby/development/sql/select/query_0002.1610013081.txt.gz
  • Ultima modifica: 2021/01/07 10:51
  • da mauro.cortese