Sorgulama ve aggregation
WHERE, AND/OR ve mantıksal sıra
Satır filtresi ile sonuç ifadesini ayır.
Kavramı anlayalım
WHERE, gruplamadan önce ham satırları filtreler. AND iki koşulun birlikte, OR en az birinin doğru olmasını ister. AND, OR’dan önce değerlendirilir; okunabilirlik için iş kuralını parantezle açıkça yaz. NULL karşılaştırması UNKNOWN üretebilir ve bu satır WHERE’den geçmez.
Basitleştirilmiş mantıksal sıra FROM/JOIN, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY ve TOP/OFFSET şeklindedir. SELECT takma adını WHERE’de kullanamazsın; ORDER BY ise görebilir. Bu, optimizer’ın fiziksel operatörleri zorunlu olarak aynı sırayla çalıştırdığı anlamına gelmez.
İş kurallarını açık, test edilebilir koşullara çevirmek için.
Parantezsiz AND/OR yazmak; SELECT takma adını aynı sorgunun WHERE bölümünde kullanmak.
Aynı konu. Üç farklı derinlik.
SELECT ProductName, Price FROM lab.Product WHERE Price >= 1000;Fiyatı 1000 ve üzerindeki dört ürünü seçer.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Stokta olan ve fiyatı 1000’den küçük ürünleri bul.
Çözümü ve açıklamasını göster
SELECT ProductName FROM lab.Product WHERE Stock > 0 AND Price < 1000;Mouse ve Notebook bulunur. Cable ucuz olsa da stok sıfırdır.