ALL, DISTINCT, DISTINCTROW, TOP Yüklemleri
Applies ToMicrosoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

SQL sorguları ile seçilen kayıtları belirtir.

Söz dizimi

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [YÜZDE]]]FROM tablosu

Bu koşulları içeren bir SELECT deyimi aşağıdaki bölümlere sahiptir:

Bölüm

Açıklama

ALL

Koşullardan birini eklemezseniz varsayılır. Microsoft Access veritabanı altyapısı, SQL deyimindeki koşulları karşılayan tüm kayıtları seçer. Aşağıdaki iki örnek eşdeğerdir ve Çalışanlar tablosundaki tüm kayıtları döndürür:

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

Seçili alanlarda yinelenen veriler içeren kayıtları atlar. Sorgunun sonuçlarına dahil olmak için SELECT deyiminde listelenen her alanın değerleri benzersiz olmalıdır. Örneğin, Çalışanlar tablosunda listelenen birkaç çalışan aynı soyadına sahip olabilir. LastName alanında iki kayıt Smith içeriyorsa, aşağıdaki SQL deyimi Smith içeren yalnızca bir kayıt döndürür:

SELECT DISTINCT LastNameFROM Employees;

DISTINCT değerini atlarsanız, bu sorgu her iki Smith kaydını da döndürür.

SELECT yan tümcesi birden fazla alan içeriyorsa, belirli bir kaydın sonuçlara dahil edilmesi için tüm alanlardaki değerlerin birleşimi benzersiz olmalıdır.

DISTINCT kullanan bir sorgunun çıktısı güncelleştirilemez ve diğer kullanıcılar tarafından yapılan sonraki değişiklikleri yansıtmaz.

DISTINCTROW

Yalnızca yinelenen alanları değil, yinelenen kayıtların tamamını temel alan verileri atlar. Örneğin, CustomerID alanında Müşteriler ve Siparişler tablolarını birleştiren bir sorgu oluşturabilirsiniz. Müşteriler tablosunda yinelenen CustomerID alanı yoktur, ancak Siparişler tablosunda her müşterinin birden çok siparişi olabileceğinden vardır. Aşağıdaki SQL deyiminde distinctrow kullanarak en az bir siparişi olan ancak bu siparişlerle ilgili hiçbir ayrıntı içermeyen şirketlerin listesini nasıl oluşturabileceğiniz gösterilmektedir:

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

DISTINCTROW'u atlarsanız, bu sorgu her şirket için birden fazla siparişi olan birden çok satır üretir.

DISTINCTROW yalnızca sorguda kullanılan tabloların bazılarından alan seçtiğinizde ancak tümünü seçmediğinizde etkili olur. Sorgunuz yalnızca bir tablo içeriyorsa veya tüm tablolardan alan çıktısı alıyorsanız DISTINCTROW yoksayılır.

TOP n [YÜZDE]

ORDER BY yan tümcesi tarafından belirtilen aralığın en üstüne veya altına düşen belirli sayıda kayıt döndürür. 1994 sınıfından en iyi 25 öğrencinin adlarını istediğinizi varsayalım:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

ORDER BY yan tümcesini eklemezseniz sorgu, Öğrenciler tablosundan WHERE yan tümcesini karşılayan rastgele bir 25 kayıt kümesi döndürür.

TOP koşulu eşit değerler arasında seçim yapmaz. Yukarıdaki örnekte, yirmi beşinci ve yirmi altıncı en yüksek not ortalamaları aynıysa, sorgu 26 kayıt döndürür.

ORDER BY yan tümcesi tarafından belirtilen aralığın en üstüne veya altına düşen kayıtların belirli bir yüzdesini döndürmek için PERCENT ayrılmış sözcüğünü de kullanabilirsiniz. İlk 25 öğrenci yerine sınıfın en alt yüzde 10'unu istediğinizi varsayalım:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

ASC koşulu, alt değerlerin bir dönüşünü belirtir. TOP'un ardından gelen değer işaretsiz bir Tamsayı olmalıdır.

TOP, sorgunun güncelleştirilebilir olup olmadığını etkilemez.

tablo

Kayıtların getirildiği tablonun adı.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.