GENERATE_SERIES (Transact-SQL)
Si applica a: SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Genera una serie di numeri in un determinato intervallo. L'intervallo e il passaggio tra i valori di serie vengono definiti dall'utente.
Livello di compatibilità 160
GENERATE_SERIES
richiede che il livello di compatibilità sia almeno 160. Quando il livello di compatibilità è minore di 160, il motore di database non riesce a trovare la GENERATE_SERIES
funzione.
Per modificare il livello di compatibilità di un database, fare riferimento a Visualizzare o modificare il livello di compatibilità di un database.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
GENERATE_SERIES ( start , stop [ , step ] )
Argomenti
start
Primo valore della matrice. L'argomento start viene specificato come variabile, valore letterale o espressione scalare di tipo tinyint, smallint, int, bigint, decimal o numeric.
stop
Ultimo valore della matrice. L'argomento stop viene specificato come variabile, valore letterale o espressione scalare di tipo tinyint, smallint, int, bigint, decimal o numeric. La serie viene arrestata quando l'ultimo valore di step generato supera quello di stop.
Il tipo di dati per stop deve corrispondere al tipo di dati per start.
[ passaggio ]
Indica il numero di valori da incrementare o decrementare tra gli step della serie. L'argomento step è un'espressione di tipo tinyint, smallint, int, bigint, decimal o numeric. Il valore di step può essere negativo o positivo, ma non zero (0
).
L'argomento è facoltativo. Il valore predefinito per step è 1 quando il valore di start è minore del valore di stop e -1 quando il valore di start è maggiore del valore di stop.
Se il valore di start è minore del valore di stop e per l'argomento step è specificato un valore negativo oppure se il valore di start è maggiore del valore di stop e per l'argomento step è specificato un valore positivo, viene restituito un set di risultati vuoto.
Tipi restituiti
Restituisce una tabella con una singola colonna contenente una sequenza di valori in cui ciascun valore si differenzia dal precedente per il valore di step. La colonna è denominata value
. L'output è dello stesso tipo degli argomenti start e stop.
Autorizzazioni
Non sono necessarie autorizzazioni per GENERATE_SERIES
. Nondimeno, l'utente deve disporre dell'autorizzazione EXECUTE per il database e dell'autorizzazione per eseguire query su tutti i dati usati come input.
Esempi
Gli esempi seguenti illustrano la sintassi per chiamare la funzione GENERATE_SERIES
.
R. Generare una serie di valori interi compresi tra 1 e 10 in incrementi di 1 (impostazione predefinita)
SELECT value
FROM GENERATE_SERIES(1, 10);
Il set di risultati è il seguente.
value
-----------
1
2
3
4
5
6
7
8
9
10
B. Generare una serie di valori interi compresi tra 1 e 50 in incrementi di 5
SELECT value
FROM GENERATE_SERIES(1, 50, 5);
Il set di risultati è il seguente.
value
-----------
1
6
11
16
21
26
31
36
41
46
C. Generare una serie di valori interi compresi tra 0,0 e 1,0 in incrementi di 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);
Il set di risultati è il seguente.
value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0