Sdílet prostřednictvím


GENERATE_SERIES (Transact-SQL)

Platí na: SQL Server 2022 (16.x) Azure SQL Database AzureSQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

Vygeneruje řadu čísel v daném intervalu. Interval a krok mezi hodnotami sérií jsou definovány uživatelem.

Úroveň kompatibility 160

GENERATE_SERIES Vyžaduje úroveň kompatibility alespoň 160. Pokud je úroveň kompatibility nižší než 160, databázový engine nemůže funkci GENERATE_SERIES najít.

Pokud chcete změnit úroveň kompatibility databáze, přečtěte si článek Zobrazení nebo změna úrovně kompatibility databáze.

Transact-SQL konvence syntaxe

Syntaxe

GENERATE_SERIES ( start , stop [ , step ] )

Arguments

start

První hodnota v intervalu. Start je specifikován jako proměnná, literál nebo skalární výraz typu tinyint, smallint, int, bigint, desetinný nebo číselný výraz.

Stop

Poslední hodnota v intervalu. Stop je specifikován jako proměnná, literál nebo skalární výraz typu tinyint, smallint, int, bigint, desetinnýnebo číselný výraz. Série se zastaví, jakmile poslední generovaná hodnota kroku překročí hodnotu stop.

Datový typ pro stopmusí odpovídat datovému typu pro start.

[ Krok ]

Označuje počet hodnot, které je třeba mezi kroky v řadě zvyšovat nebo snižovat. Step je výraz typu tinyint, smallint, int, bigint, desetinný nebo číselný číslo. krok může být záporný nebo kladný, ale nemůže být nula (0).

Tento argument je nepovinný. Výchozí hodnota pro step je 1, pokud je start menší než stop, jinak je výchozí hodnota -1, pokud je start větší než stop.

Pokud je start menší než stop a pro step je zadána záporná hodnota, nebo pokud start je větší než stop a pro step je zadána kladná hodnota, vrátí se prázdná množina výsledků.

Návratové typy

Vrátí tabulku s jedním sloupcem obsahující posloupnost hodnot, v nichž se každá liší od předchozí o krok. Název sloupce je value. Výstup je stejný typ jako start a stop.

Povolení

Pro . není potřeba GENERATE_SERIESžádná oprávnění. Uživatel však potřebuje povolení EXECUTE v databázi a povolení k dotazování jakýchkoli dat, která jsou použita jako vstupy.

Examples

Následující příklady ukazují syntaxi volání GENERATE_SERIES.

A. Generujte řadu celočíselných hodnot mezi 1 a 10 v krocích po 1 (výchozí)

SELECT value
FROM GENERATE_SERIES(1, 10);

Tady je soubor výsledků.

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

B. Generujte řadu celočíselných hodnot mezi 1 a 50 v krocích po 5

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

Tady je soubor výsledků.

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

C. Generujte řadu desetinných hodnot mezi 0,0 a 1,0 v krocích po 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);

Tady je soubor výsledků.

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