Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Test etmek için bir aralık belirtir.
Transact-SQL söz dizimi kuralları
Syntax
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
Arguments
test_expression
ifadesi, begin_expressionve end_expressiontarafından tanımlanan aralıkta test etmek için. test_expression hem begin_expression hem de end_expressionile aynı veri türü olmalıdır.
NOT
Koşulun sonucunun olumsuzlandığını belirtir.
begin_expression
Herhangi bir geçerli ifade. begin_expression hem test_expression hem de end_expressionile aynı veri türü olmalıdır.
end_expression
Herhangi bir geçerli ifade. end_expression hem test_expressionhem de begin_expressionile aynı veri türü olmalıdır.
AND
test_expressionbegin_expression ve end_expressiontarafından belirtilen aralık içinde olması gerektiğini belirten bir yer tutucu işlevi görür.
Dönüş türleri
Boolean
Remarks
BETWEEN, TRUE değeri begin_expression değerinden büyük veya buna eşitse ve end_expressiondeğerinden küçük veya buna eşitse döndürür.
NOT BETWEEN, TRUE değeri begin_expression değerinden küçükse veya end_expressiondeğerinden büyükse döndürür.
Özel kullanım aralığı belirtmek için büyüktür (>) ve küçüktür işleçlerini (<) kullanın.
BETWEEN veya NOT BETWEEN koşuluna herhangi bir giriş NULLise, sonuç, bağlı parçaların sonuçlarına bağlıdır.
Aşağıdaki örnekte test_expression >= begin_expression AND test_expression <= end_expression, herhangi bir bölüm FALSE genel BETWEEN ifadesi FALSEolarak değerlendirilir. Aksi takdirde ifade UNKNOWNolarak değerlendirilir.
Examples
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. ARADA KULLANIM
Aşağıdaki örnek, veritabanındaki veritabanı rolleri hakkında bilgi döndürür. İlk sorgu tüm rolleri döndürür. İkinci örnek, rolleri belirtilen BETWEEN değerleriyle sınırlamak için database_id yan tümcesini kullanır.
SELECT principal_id,
name
FROM sys.database_principals
WHERE type = 'R';
Sonuç kümesi aşağıdadır.
principal_id name
------------ ----
0 public
16384 db_owner
16385 db_accessadmin
16386 db_securityadmin
16387 db_ddladmin
16389 db_backupoperator
16390 db_datareader
16391 db_datawriter
16392 db_denydatareader
16393 db_denydatawriter
SELECT principal_id,
name
FROM sys.database_principals
WHERE type = 'R'
AND principal_id BETWEEN 16385 AND 16390;
GO
Sonuç kümesi aşağıdadır.
principal_id name
------------ ----
16385 db_accessadmin
16386 db_securityadmin
16387 db_ddladmin
16389 db_backupoperator
16390 db_datareader
B. BETWEEN yerine > ve < kullanma
Aşağıdaki örnekte büyüktür (>) ve küçüktür (<) işleçleri kullanılır ve bu işleçler kapsayıcı olmadığından, önceki örnekte döndürülen 10 yerine dokuz satır döndürür.
SELECT e.FirstName,
e.LastName,
ep.Rate
FROM HumanResources.vEmployee AS e
INNER JOIN HumanResources.EmployeePayHistory AS ep
ON e.BusinessEntityID = ep.BusinessEntityID
WHERE ep.Rate > 27
AND ep.Rate < 30
ORDER BY ep.Rate;
GO
Sonuç kümesi aşağıdadır.
FirstName LastName Rate
--------- ------------------- ---------
Paula Barreto de Mattos 27.1394
Janaina Bueno 27.4038
Dan Bacon 27.4038
Ramesh Meyyappan 27.4038
Karen Berg 27.4038
David Bradley 28.7500
Hazem Abolrous 28.8462
Ovidiu Cracium 28.8462
Rob Walters 29.8462
C. DEĞİl BETWEEN kullanma
Aşağıdaki örnek, 27aracılığıyla belirtilen 30 aralığının dışındaki tüm satırları bulur.
SELECT e.FirstName,
e.LastName,
ep.Rate
FROM HumanResources.vEmployee AS e
INNER JOIN HumanResources.EmployeePayHistory AS ep
ON e.BusinessEntityID = ep.BusinessEntityID
WHERE ep.Rate NOT BETWEEN 27 AND 30
ORDER BY ep.Rate;
GO
D. Tarih saat değerleriyle BETWEEN kullanma
Aşağıdaki örnek, datetime değerlerinin 20011212 ile 20020105(dahil) arasında olduğu satırları alır.
SELECT BusinessEntityID,
RateChangeDate
FROM HumanResources.EmployeePayHistory
WHERE RateChangeDate BETWEEN '20011212' AND '20020105';
Sonuç kümesi aşağıdadır.
BusinessEntityID RateChangeDate
----------- -----------------------
3 2001-12-12 00:00:00.000
4 2002-01-05 00:00:00.000
Sorgudaki tarih değerleri ve sütununda depolanan RateChangeDate değerleri tarihin saat bölümü olmadan belirtildiğinden sorgu beklenen satırları alır. Zaman bölümü belirtilmezse varsayılan olarak 12:00'ye ayarlanır. 5 Ocak 2002'de saat 12:00'ye kadar olan bir zaman bölümü içeren satır, aralığın dışında olduğundan bu sorgu tarafından döndürülmüyor.