Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed Instance
SQL Analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
Generuje serię liczb w danym interwale. Przedział i krok między wartościami szeregowymi są definiowane przez użytkownika.
Poziom kompatybilności 160
GENERATE_SERIES wymaga, aby poziom kompatybilności wynosił co najmniej 160. Gdy poziom kompatybilności jest mniejszy niż 160, silnik bazy danych nie jest w stanie znaleźć GENERATE_SERIES tej funkcji.
Aby zmienić poziom zgodności bazy danych, zobacz Wyświetlanie lub zmienianie poziomu zgodności bazy danych.
Transact-SQL konwencje składni
Składnia
GENERATE_SERIES ( start , stop [ , step ] )
Arguments
start
Pierwsza wartość w interwale. Start jest określany jako zmienna, literal lub wyrażenie skalarne typu tinyint, smallint, int, bigint, dziesiętny lub numeryczny.
zatrzymać
Ostatnia wartość w interwale. Stop jest określany jako zmienna, literal lub wyrażenie skalarne typu tinyint, smallint, int, bigint, dziesiętny lubnumeryczny. Seria zatrzymuje się, gdy ostatnia wygenerowana wartość kroku przekroczy wartość stop .
Typ danych dla stopmusi odpowiadać typowi danych dla start.
[ krok ]
Wskazuje liczbę wartości do zwiększania lub zmniejszania między krokami w szeregu.
Step to wyrażenie typu tinyint, smallint, int, bigint, dziesiętny lub numeryczny.
krok może być ujemny lub dodatni, ale nie może być zerowy (0).
Ten argument jest opcjonalny. Domyślna wartość kroku to 1, jeśli start jest mniejszy niż stop, w przeciwnym razie wartość domyślna to -1, jeśli start jest większy niż stop.
Jeśli start jest mniejszy niż stop , a dla kroku podana jest wartość ujemna, lub jeśli start jest większy niż stop , a dla kroku podana jest wartość dodatnia, zwracany jest pusty zbiór wyników.
Typy zwracane
Zwraca tabelę jednokolumnową zawierającą ciąg wartości, z których każda różni się od poprzedniej o krok. Nazwa kolumny to value. Wyjście jest tego samego typu co start i stop.
Permissions
Nie są wymagane żadne uprawnienia dla GENERATE_SERIES. Jednak użytkownik potrzebuje uprawnień EXECUTE do bazy danych oraz uprawnień do zapytań o dane używane jako wejścia.
Przykłady
W poniższych przykładach pokazano składnię wywoływania metody GENERATE_SERIES.
A. Generuj serię wartości całkowitych od 1 do 10 w przyrostach 1 (domyślnie)
SELECT value
FROM GENERATE_SERIES(1, 10);
Oto zestaw wyników.
value
-----------
1
2
3
4
5
6
7
8
9
10
B. Wygeneruj ciąg wartości całkowitych od 1 do 50 w krokach po 5
SELECT value
FROM GENERATE_SERIES(1, 50, 5);
Oto zestaw wyników.
value
-----------
1
6
11
16
21
26
31
36
41
46
C. Generuj serię wartości dziesiętnych od 0,0 do 1,0 w krokach 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);
Oto zestaw wyników.
value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0