Delen via


GENERATE_SERIES (Transact-SQL)

Van toepassing op: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric SQLdatabase in Microsoft Fabric

Hiermee wordt een reeks getallen binnen een bepaald interval gegenereerd. Het interval en de stap tussen reekswaarden worden door de gebruiker gedefinieerd.

Compatibiliteitsniveau 160

GENERATE_SERIES vereist dat het compatibiliteitsniveau minimaal 160 is. Wanneer het compatibiliteitsniveau minder dan 160 is, kan de Database Engine de GENERATE_SERIES functie niet vinden.

Als u het compatibiliteitsniveau van een database wilt wijzigen, raadpleegt u Het compatibiliteitsniveau van een database weergeven of wijzigen.

Transact-SQL syntaxis-conventies

Syntaxis

GENERATE_SERIES ( start , stop [ , step ] )

Arguments

start

De eerste waarde in het interval. Start wordt gespecificeerd als een variabele, een literale of een scalaire expressie van het type tinyint, smallint, int, bigint, decimaal of numeriek.

stoppen

De laatste waarde in het interval. stop wordt gespecificeerd als een variabele, een literale of een scalaire expressie van het type tinyint, smallint, int, bigint, decimaal of numeriek. De reeks stopt zodra de laatst gegenereerde stapwaarde de stopwaarde overschrijdt.

Het datatype voor stopmoet overeenkomen met het datatype voor start.

[ stap ]

Geeft het aantal waarden aan dat moet worden verhoogd of verlaagd tussen stappen in de reeks. step is een uitdrukking van het type tinyint, smallint, int, bigint, decimaal of numeriek. Stap kan negatief of positief zijn, maar mag niet nul zijn (0).

Dit argument is optioneel. De standaardwaarde voor stap is 1 als start kleiner is dan stop, anders is de standaardwaarde -1 als start groter is dan stop.

Als start kleiner is dan stop en een negatieve waarde wordt gespecificeerd voor stap, of als start groter is dan stop en een positieve waarde wordt gespecificeerd voor stap, wordt een lege resultaatset teruggegeven.

Retourtypen

Geeft een tabel met één kolom terug die een reeks waarden bevat waarin elke waarde per stap verschilt van de voorgaande. De naam van de kolom is value. De uitgang is hetzelfde type als start en stop.

Permissions

Er zijn geen rechten nodig voor GENERATE_SERIES. De gebruiker heeft echter EXECUTE-toestemming nodig voor de database en toestemming om alle data die als invoer wordt gebruikt te bevragen.

Voorbeelden

In de volgende voorbeelden ziet u de syntaxis voor aanroepen GENERATE_SERIES.

Eén. Genereer een reeks gehele waarden tussen 1 en 10 in stappen van 1 (standaard)

SELECT value
FROM GENERATE_SERIES(1, 10);

Hier is het resultatenoverzicht.

value
-----------
1
2
3
4
5
6
7
8
9
10

B. Genereer een reeks gehele getallen tussen 1 en 50 in stappen van 5

SELECT value
FROM GENERATE_SERIES(1, 50, 5);

Hier is het resultatenoverzicht.

value
-----------
1
6
11
16
21
26
31
36
41
46

C. Genereer een reeks decimale waarden tussen 0,0 en 1,0 in stappen van 0,1

DECLARE @start decimal(2, 1) = 0.0;
DECLARE @stop decimal(2, 1) = 1.0;
DECLARE @step decimal(2, 1) = 0.1;

SELECT value
FROM GENERATE_SERIES(@start, @stop, @step);

Hier is het resultatenoverzicht.

value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0