GENERATE_SERIES (Transact-SQL)
適用於:Microsoft Fabric 中Microsoft網狀架構倉儲中的 SQL Server 2022 (16.x) Azure SQL 資料庫 Azure SQL 受控執行個體 SQL 分析端點
在指定間隔內產生一系列數字。 數列值間的間隔和步驟是由使用者所定義。
相容性層級 160
GENERATE_SERIES
需要相容性層級至少為160。 當相容性層級小於 160 時,資料庫引擎 找不到函GENERATE_SERIES
式。
若要變更資料庫的相容性層級,請參閱 檢視或變更資料庫的相容性層級。
語法
GENERATE_SERIES ( start , stop [ , step ] )
引數
開始
間隔中的第一個值。 start 被指定為類型 tinyint、smallint、int、bigint、decimal 或 numeric的變數、常值或純量 運算式。
停止
間隔中的最後一個值。 stop 被指定為類型 tinyint、smallint、int、bigint、decimal 或 numeric的變數、常值或純量 運算式。 一旦最後產生的步驟值超過 stop 值,數列就會停止。
stop 的數據類型必須符合 start 的數據類型。
[ 步驟 ]
指示在數列中的步驟間遞增或遞減之值的數量。 step 是類型 tinyint、smallint、int、bigint、decimal 或 numeric的 運算式。 step 可以是負數或正數,但不能為零 (0
)。
此引數是選擇性的。 如果 start 小於 stop,則 step 的預設值為 1,否則如果 start 大於 stop,則預設值為 -1。
如果 start 小於 stop 且為 step 指定了負值,或如果 start 大於 stop 且為 step 指定了正值,則會傳回空的結果集。
傳回類型
傳回具有一系列值的單一資料行表格,該系列值以 step 與前項作分別。 資料行的名稱為 value
。 輸出的類型與 start 和 stop 相同。
權限
不需要 GENERATE_SERIES
任何許可權。 不過,使用者需要資料庫的 EXECUTE 權限以及查詢任何用於輸入之資料的權限。
範例
下列範例示範呼叫 GENERATE_SERIES
的語法。
A. 以 1 遞增產生介於 1 到 10 之間的一系列整數值 (預設)
SELECT value
FROM GENERATE_SERIES(1, 10);
結果集如下所示。
value
-----------
1
2
3
4
5
6
7
8
9
10
B. 以 5 遞增產生介於 1 到 50 之間的一系列整數值
SELECT value
FROM GENERATE_SERIES(1, 50, 5);
結果集如下所示。
value
-----------
1
6
11
16
21
26
31
36
41
46
C. 以 0.1 遞增產生介於 0.0 到 1.0 之間的一系列十進位值
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);
結果集如下所示。
value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0