GENERATE_SERIES (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL di Microsoft FabricWarehouse di Microsoft Fabric
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, Mesin Database tidak dapat menemukan GENERATE_SERIES
fungsi.
Untuk mengubah tingkat kompatibilitas database, lihat Menampilkan atau mengubah tingkat kompatibilitas database.
Sintaks
GENERATE_SERIES ( start , stop [ , step ] )
Argumen
mulai
Nilai pertama dalam interval. start ditentukan sebagai variabel, literal, 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, kumpulan hasil kosong dikembalikan.
Jenis yang dikembalikan
Mengembalikan tabel kolom tunggal yang berisi urutan nilai di mana masing-masing berbeda dari yang sebelumnya berdasarkan langkah. Nama kolom adalah value
. Outputnya adalah jenis yang sama dengan mulai dan hentikan.
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 dalam kenaikan 1 (default)
SELECT value
FROM GENERATE_SERIES(1, 10);
Berikut adalah hasil yang ditetapkan.
value
-----------
1
2
3
4
5
6
7
8
9
10
B. Hasilkan serangkaian nilai bilangan bulat antara 1 dan 50 dalam kenaikan 5
SELECT value
FROM GENERATE_SERIES(1, 50, 5);
Berikut adalah hasil yang ditetapkan.
value
-----------
1
6
11
16
21
26
31
36
41
46
C. Hasilkan serangkaian nilai desimal antara 0,0 dan 1,0 dalam 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 adalah hasil yang ditetapkan.
value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk