GENERATE_SERIES (T-SQL)

Berlaku untuk: Pratinjau SQL Server 2022 (16.x)

Menghasilkan serangkaian angka dalam interval tertentu. Interval dan langkah antara nilai seri ditentukan oleh pengguna.

Tingkat kompatibilitas 160

GENERATE_SERIES memerlukan tingkat kompatibilitas setidaknya 160. Ketika tingkat kompatibilitas kurang dari 160, SQL Server tidak dapat menemukan fungsi GENERATE_SERIES.

Untuk mengubah tingkat kompatibilitas database, lihat Menampilkan atau mengubah tingkat kompatibilitas database.

Konvensi Sintaksis T-SQL

Sintaks

GENERATE_SERIES ( start, stop [, step ] )

Argumen

start

Nilai pertama dalam interval. start ditentukan sebagai variabel, harfiah, atau ekspresi skalar jenis tinyint, smallint, int, bigint, desimal, atau numerik.

stop

Nilai terakhir dalam interval. stop ditentukan sebagai variabel, harfiah, atau ekspresi skalar jenis tinyint, smallint, int, bigint, desimal, atau numerik. Seri berhenti setelah nilai langkah terakhir yang dihasilkan melebihi nilai berhenti .

Jenis data untuk berhentiharus cocok dengan jenis data untuk memulai.

[ langkah ]

Menunjukkan jumlah nilai untuk kenaikan atau penurunan di antara langkah-langkah dalam seri. langkah adalah ekspresi jenis tinyint, smallint, int, bigint, desimal, atau numerik. bisa negatif atau positif, tetapi tidak boleh nol (0).

Argumen ini bersifat opsional. Nilai default untuk langkah adalah 1 jika mulai kurang dari berhenti, jika tidak, nilai defaultnya adalah -1 jika mulai lebih besar dari berhenti.

Jika mulai kurang dari berhenti dan nilai negatif ditentukan untuk langkah, atau jika mulai lebih besar dari berhenti dan nilai positif ditentukan untuk langkah, tataan hasil kosong dikembalikan.

Jenis yang ditampilkan

Mengembalikan tabel kolom tunggal yang berisi urutan nilai di mana masing-masing berbeda dari langkah sebelumnya. Nama kolom adalah value. Output adalah jenis yang sama dengan mulai dan berhenti.

Izin

Tidak ada izin yang diperlukan untuk GENERATE_SERIES. Namun, pengguna memerlukan izin EXECUTE pada database, dan izin untuk mengkueri data apa pun yang digunakan sebagai input.

Contoh

Contoh berikut menunjukkan sintaks untuk memanggil GENERATE_SERIES.

J. Hasilkan serangkaian nilai bilangan bulat antara 1 dan 10 dengan kenaikan 1 (default)

SELECT value
FROM GENERATE_SERIES(1, 10);

Berikut set hasilnya.

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

B. Hasilkan serangkaian nilai bilangan bulat antara 1 dan 50 dengan kenaikan 5

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

Berikut set hasilnya.

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

C. Hasilkan serangkaian nilai desimal antara 0,0 dan 1,0 dengan kenaikan 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);

Berikut set hasilnya.

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

Lihat juga