Son Haberler
Anasayfa / Yazılım / SQL / NOT BETWEEN Kullanımı

NOT BETWEEN Kullanımı

Not Between deyimi Select ve Where deyimleri ile birlikte kullanılan bir deyimdir. Herhangi bir aralık dışındaki verileri listemek istediğimizde SELECT ve WHERE deyimleri ile birlikte NOT BETWEEN kullanırız. Bu sorgunun sonucunda bize geri dönen değerler belirtilen aralık dışında kalan değerlerdir. Kalıp olarak kullanımı şöyledir :

SELECT column1,column2 FROM schema.table WHERE column NOT BETWEEN value1 AND value2;

SELECT deyimi ve sonrası listelenmesini istediğimiz kolonlar daha sonra FROM deyimi ve hangi tablodan veri çekeceğimiz ve sonra WHERE deyimi ve aralık belirtmek istediğimiz kolonun adı ve sonra NOT BETWEEN deyimi ilk değer AND ve sondeğer. Bunlar istemediğimiz aralığı ifade ederler Şimdi bir kaç örnek yapıyorum. (AdventureWorks veritabanı üzerinde çalışıyorum)

SELECT CustomerID, SalesOrderID, OrderDate, AccountNumber
FROM Sales.SalesOrderHeader WHERE OrderDate NOT BETWEEN '2005-07-02' AND '2008-07-30'

Sales.SalesOrderHeader tablosundan OrderDate alanı 2005-07-02 ve 2008-07-30 (bu tarihler dahil) olmak üzere bu tarihler dışında kalan verilerin CustomerID, SalesOrderID, OrderDate, AccountNumber alanlarını listeledik.

171203

SELECT CustomerID, SalesOrderID, OrderDate, AccountNumber, Comment
FROM Sales.SalesOrderHeader WHERE CustomerID NOT BETWEEN 29000 AND 30000

Sales.SalesOrderHeader tablosundan CustomerID alanı 29000 ve 30000 (değerleri dahil) dışında kalan tüm verilerin CustomerID, SalesOrderID, OrderDate, AccountNumber, Comment alanları listelenir.

171204

SELECT BusinessEntityID, JobTitle, MaritalStatus, Gender
FROM HumanResources.Employee WHERE JobTitle NOT BETWEEN 'B' AND 'E'

HumanResources.Employee tablosundan JobTitle alanı B ve E dışında kalan verilerin BusinessEntityID, JobTitle, MaritalStatus, Gender alanlarını listeler. Ancak burada B ile başlayanların hepsi listelenmez, fakat E ile başlayanlarda eğer E’nin yanında bir karakter mevcutsa bu listelenir. Çünkü E dediğimizde son değer olduğu için burada sadece E harfi olanlar kastedilmiş olur.

SELECT CustomerID, SalesOrderID, OrderDate 
FROM Sales.SalesOrderHeader WHERE SalesOrderID NOT BETWEEN 43665 AND 43660

Bu sorgu yanlış olur, bakınız sonuçta bu değerleri ve aralığını görüyoruz.

171205

Bunun sebebi şu, ilk değerin ikinci değerden büyük olmasıdır. NOT BETWEEN içinde ilk değer ikinci değerden küçük olmalıdır. Bu sorgunun doğru hali ve sonucu aşağıdaki gibidir :

SELECT CustomerID, SalesOrderID, OrderDate 
FROM Sales.SalesOrderHeader WHERE SalesOrderID NOT BETWEEN 43660 AND 43665

171206

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir