Aracılığıyla paylaş


GENERATE_SERIES (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

Belirli bir aralık içinde bir dizi sayı oluşturur. Seri değerleri arasındaki aralık ve adım kullanıcı tarafından tanımlanır.

Uyumluluk seviyesi 160

GENERATE_SERIES uyumluluk seviyesinin en az 160 olmasını gerektirir. Uyumluluk seviyesi 160'tan az olduğunda, Veritabanı Motoru fonksiyonu GENERATE_SERIES bulamaz.

Veritabanının uyumluluk düzeyini değiştirmek için veritabanının uyumluluk düzeyini görüntüleme veya değiştirme bölümüne bakın.

Transact-SQL söz dizimi kuralları

Sözdizimi

GENERATE_SERIES ( start , stop [ , step ] )

Arguments

start

Aralıktaki ilk değer. start, tinyint, smallint, int, bigint, ondalık veya sayısal tipte değişken, literal veya skaler ifade olarak belirtilir.

durmak

Aralıktaki son değer. Dur, Tinyint, Smallint, Int, Bigint, ondalık veya sayısal tipte değişken, literal veya skaler bir ifade olarak belirtilir. Seri, son oluşturulan adım değeri stop değerini aştığında durur.

Stop için veri tipi, start için veri tipiyle eşleşmelidir.

[ adım ]

Serideki adımlar arasında artırılan veya azaltılan değer sayısını gösterir. adım, tinyint, smallint, int, bigint, ondalık veya sayısal tipli bir ifadedir. adım ya negatif ya da pozitif olabilir, ama sıfır olamaz (0).

Bu bağımsız değişken isteğe bağlıdır. Başlangıç durdurmadan küçükse adım için varsayılan değer 1'dir, aksi takdirde startdurdurmadan büyükse varsayılan değer -1'dir.

Başlangıçdurmadan küçükse ve adım için negatif değer belirtilirse, başlangıçdurmadan büyükse ve adım için pozitif değer belirtilirse, boş bir sonuç kümesi döner.

Dönüş türleri

Her biri bir öncekinden adım olarak farklı olan bir değer dizisi içeren tek sütunlu bir tablo döndürür. Sütunun adı şeklindedir value. Çıkış, başlatma ve durdurma ile aynı türdedir.

Permissions

için izin gerekmez GENERATE_SERIES. Ancak, kullanıcının veritabanında EXECUTE iznine ve girdi olarak kullanılan herhangi bir veriyi sorgulama iznine ihtiyacı vardır.

Örnekler

Aşağıdaki örneklerde çağrısı GENERATE_SERIESiçin söz dizimi gösterilmektedir.

A. 1 ile 10 arasında tam sayı değerlerinden oluşan bir dizi 1 (varsayılan olarak) artışlarla oluşturulur

SELECT value
FROM GENERATE_SERIES(1, 10);

Sonuç kümesi aşağıdadır.

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

B. 1 ile 50 arasında 5 aralıklarla tam sayı değer serisi oluşturun

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

Sonuç kümesi aşağıdadır.

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

C. 0.0 ile 1.0 arasında 0.1 artışlarla ondalık değerler serisi oluşturulur

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

Sonuç kümesi aşağıdadır.

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