hobby:development:sql:select:query_0002

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;

Il risultato sarà un recordset di 50 record dal numero 50 al 100:

Row IdData Code Description Data
50 500 CDC0500 DESCRIPTION CDC0500 07/01/2021 10:42:30.153
51 510 CDC0510 DESCRIPTION CDC0510 07/01/2021 10:42:30.153
52 520 CDC0520 DESCRIPTION CDC0520 07/01/2021 10:42:30.153
53 530 CDC0530 DESCRIPTION CDC0530 07/01/2021 10:42:30.153
54 540 CDC0540 DESCRIPTION CDC0540 07/01/2021 10:42:30.153
55 550 CDC0550 DESCRIPTION CDC0550 07/01/2021 10:42:30.153
56 560 CDC0560 DESCRIPTION CDC0560 07/01/2021 10:42:30.153
57 570 CDC0570 DESCRIPTION CDC0570 07/01/2021 10:42:30.153
58 580 CDC0580 DESCRIPTION CDC0580 07/01/2021 10:42:30.153
59 590 CDC0590 DESCRIPTION CDC0590 07/01/2021 10:42:30.153
60 600 CDC0600 DESCRIPTION CDC0600 07/01/2021 10:42:30.153
61 610 CDC0610 DESCRIPTION CDC0610 07/01/2021 10:42:30.170
62 620 CDC0620 DESCRIPTION CDC0620 07/01/2021 10:42:30.170
63 630 CDC0630 DESCRIPTION CDC0630 07/01/2021 10:42:30.170
64 640 CDC0640 DESCRIPTION CDC0640 07/01/2021 10:42:30.170
65 650 CDC0650 DESCRIPTION CDC0650 07/01/2021 10:42:30.170
66 660 CDC0660 DESCRIPTION CDC0660 07/01/2021 10:42:30.170
67 670 CDC0670 DESCRIPTION CDC0670 07/01/2021 10:42:30.170
68 680 CDC0680 DESCRIPTION CDC0680 07/01/2021 10:42:30.170
69 690 CDC0690 DESCRIPTION CDC0690 07/01/2021 10:42:30.170
70 700 CDC0700 DESCRIPTION CDC0700 07/01/2021 10:42:30.170
71 710 CDC0710 DESCRIPTION CDC0710 07/01/2021 10:42:30.170
72 720 CDC0720 DESCRIPTION CDC0720 07/01/2021 10:42:30.170
73 730 CDC0730 DESCRIPTION CDC0730 07/01/2021 10:42:30.170
74 740 CDC0740 DESCRIPTION CDC0740 07/01/2021 10:42:30.170
75 750 CDC0750 DESCRIPTION CDC0750 07/01/2021 10:42:30.170
76 760 CDC0760 DESCRIPTION CDC0760 07/01/2021 10:42:30.170
77 770 CDC0770 DESCRIPTION CDC0770 07/01/2021 10:42:30.170
78 780 CDC0780 DESCRIPTION CDC0780 07/01/2021 10:42:30.170
79 790 CDC0790 DESCRIPTION CDC0790 07/01/2021 10:42:30.170
80 800 CDC0800 DESCRIPTION CDC0800 07/01/2021 10:42:30.170
81 810 CDC0810 DESCRIPTION CDC0810 07/01/2021 10:42:30.170
82 820 CDC0820 DESCRIPTION CDC0820 07/01/2021 10:42:30.170
83 830 CDC0830 DESCRIPTION CDC0830 07/01/2021 10:42:30.170
84 840 CDC0840 DESCRIPTION CDC0840 07/01/2021 10:42:30.170
85 850 CDC0850 DESCRIPTION CDC0850 07/01/2021 10:42:30.187
86 860 CDC0860 DESCRIPTION CDC0860 07/01/2021 10:42:30.187
87 870 CDC0870 DESCRIPTION CDC0870 07/01/2021 10:42:30.187
88 880 CDC0880 DESCRIPTION CDC0880 07/01/2021 10:42:30.187
89 890 CDC0890 DESCRIPTION CDC0890 07/01/2021 10:42:30.187
90 900 CDC0900 DESCRIPTION CDC0900 07/01/2021 10:42:30.187
91 910 CDC0910 DESCRIPTION CDC0910 07/01/2021 10:42:30.187
92 920 CDC0920 DESCRIPTION CDC0920 07/01/2021 10:42:30.187
93 930 CDC0930 DESCRIPTION CDC0930 07/01/2021 10:42:30.187
94 940 CDC0940 DESCRIPTION CDC0940 07/01/2021 10:42:30.187
95 950 CDC0950 DESCRIPTION CDC0950 07/01/2021 10:42:30.187
96 960 CDC0960 DESCRIPTION CDC0960 07/01/2021 10:42:30.187
97 970 CDC0970 DESCRIPTION CDC0970 07/01/2021 10:42:30.187
98 980 CDC0980 DESCRIPTION CDC0980 07/01/2021 10:42:30.187
99 990 CDC0990 DESCRIPTION CDC0990 07/01/2021 10:42:30.187
100 1000 CDC1000 DESCRIPTION CDC1000 07/01/2021 10:42:30.187
  • hobby/development/sql/select/query_0002.txt
  • Ultima modifica: 2021/01/07 10:57
  • da mauro.cortese