GENERATE_SERIES (Transact-SQL)

Si applica a: endpoint di analisi SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure SQL in Microsoft FabricWarehouse 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 di 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 l'argomento stopdeve corrispondere al tipo di dati per l'argomento 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);

Questo è il set di risultati.

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);

Questo è il set di risultati.

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);

Questo è il set di risultati.

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