MSSQL Server’da WHERE Koşulu

WHERE, SQL sorgularında belirli bir koşulu karşılayan kayıtları filtrelemek için kullanılan bir yan tümcedir. (clause). SELECT, UPDATE ve DELETE ifadeleriyle birlikte kullanılabilir.

Where koşulumuzun sorgumuzda genel kullanımı aşağıdaki gibidir.

SELECT * FROM TabloAdi WHERE kosul;

Herhangi bir tabloya select çektiğimizde tüm değerler gelir. Kullanıcı sadece belirlediği kolon değerini göre filtreleme yaparak okuma sayısını kısaltır. Bu yapıda sql server üzerinde performans anlamında bize katkı sunmaktadır.

SELECT * FROM [Person].[Person] WHERE BusinessEntityID=100

SELECT * FROM [Person].[Person] WHERE BusinessEntityID<10

Yukarıdaki koşullarımızı detaylandıra biliriz. Aşağıdaki ilgili sorgu sayesinde 20 bin kayıt dönmesi gerekirken filtreleme sonucu 54 karakterin geldiği görülmektedir.

SELECT * FROM [Person].[Person] WHERE FirstName='Dylan'

İlgili sorgumuzun şart koşulunda birden fazla şart tanımlayabiliriz. Birden fazla koşulumuz varsa bu koşul ifadelerin or/and yapısıyla eklenmektedir. Yukarıdaki sorgumuza ekstra bir filtreleme koyarsak sorgu sonucumuzun daha minimize ettiği görülmektedir.

SELECT * FROM [Person].[Person] WHERE FirstName='Dylan' and LastName='Miller'

Yukarıdaki tanımladığımız sorgumuzun üzerinden devam edecek olursak sorgumuzda and operatörü yerine or operatörü kullanıldığında sorgu sonucumuzun arttığı görülmektedir. Aslında sorgumuz ilk olarak FirstName sonucunu döndüğünü ve ardından LastName kolonunu eklemekte ve iki kolonun ortak olan değerleri bir önceki ekran resimdeki 4 kayıt çıkarılmaktadır. Sadece LastName kolonu hesaplandığında 87 kaydın geldiği görülmektedir.

SELECT * FROM [Person].[Person] WHERE FirstName='Dylan' or LastName='Miller'

Not: AND operatörü çarpma şeklinde hareket ederken OR operatörü toplama yapısına karşılık gelmektedir.

Sorgumuzda tarih kolonunda ayın 15’inden sonra işlem yapan kullanıcıları getiren script:

SELECT ModifiedDate,*
FROM [AdventureWorks2017].[Person].[Person] where DAY(ModifiedDate)>15

Gün değerini almayıp YEAR ifadesiyle ilgili yıl değerini alabilirsiniz.

SELECT ModifiedDate,*
  FROM [AdventureWorks2017].[Person].[Person] where YEAR(ModifiedDate)>2012

WHERE koşulu, SQL Server’da veri filtrelemenin temel taşıdır. Doğru kullanıldığında, yalnızca ihtiyaç duyulan verileri getirerek performansı artırır ve kaynak kullanımını optimize eder. Bu rehberde ele aldığımız tüm teknikleri projelerinizde uygulayarak daha etkili ve verimli sorgular yazabilirsiniz.

Başka makalede görüşmek dileğiyle..

“De ki: ‘Ey kendilerinin aleyhine aşırı giden kullarım! Allah’ın rahmetinden ümidinizi kesmeyin. Şüphesiz Allah, bütün günahları affeder. Çünkü O, çok bağışlayandır, çok merhamet edendir.’ “ Zümer Suresi; 53. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir