SQL DISTINCT yan tümcesi, yinelenen değerleri sorgu sonuçlarından kaldırmak için kullanılır. Çıktının yalnızca belirtilen sütun(lar) için benzersiz kayıtları göstermesini sağlar.
Örnek: İlk önce yapacağız yaratmak Distinct Clause komutunu kullanacağımız demo SQL veritabanı ve tablosu.
Sorgu:
SELECT DISTINCT Department
FROM Employees;
Çıkış:
Sözdizimi:
SELECT DISTINCT column1 column2
FROM table_name
- sütun1 sütun2: Tablodaki alanların adları.
- Tablo_adı: Kayıtları almak istediğimiz tablo.
Not: Birden fazla sütunda kullanılıyorsa
DISTINCTbu sütunlardaki benzersiz değer kombinasyonlarını döndürür.
SQL'de DISTINCT örnekleri
Örnek bir tablo oluşturalım ve onu bazı yinelenen girişlerle dolduralım. Örnek öğrenci tablosuyla DISTINCT anahtar sözcüğünün kullanımına ilişkin bazı örnekler göreceğiz.
Örnek 1: NAME Alanından Benzersiz Adları Getirin.
Sorgu yalnızca benzersiz adları döndürür ve tablodaki yinelenen girişleri ortadan kaldırır.
Sorgu:
SELECT DISTINCT NAME FROM students; Çıkış:
Örnek 2: Birden Çok Sütunun Benzersiz Kombinasyonlarını Getirme
Bu sorgu, NAME ve AGE'nin farklı kombinasyonlarını alır; iki satır aynı ada ve yaşa sahipse, sonuç kümesinde bunlardan yalnızca biri görünür.
Sorgu:
SELECT DISTINCT NAME AGE FROM students;Çıkış:
Örnek 3: DISTINCT'i ORDER BY Cümlesiyle Kullanmak
DISTINCT anahtar sözcüğünü şu ifadeyle birleştirebiliriz: SİPARİŞ VEREN Sonuç kümesini sıralarken benzersiz değerleri filtrelemek için yan tümce. Bu sorgu, öğrenciler tablosundan benzersiz yaşları alır ve bunları artan düzende sıralar.
Sorgu:
SELECT DISTINCT AGE FROM students ORDER BY AGE; Çıkış:
Örnek 4: DISTINCT'i Toplama İşlevleriyle Kullanma (ör. COUNT())
Burada kontrol edeceğiz SAYMAK() COUNT() işlevini kullanarak toplam öğrenci sayısını verecek bir DISTINCT cümleciği ile işlev.
Sorgu:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;Çıkış:
Örnek 5: NULL Değerlerle DISTINCT
SQL'de DISTINCT anahtar sözcüğü NULL'u benzersiz bir değer olarak ele alır. NULL ayrı bir değer olarak kabul edilir, dolayısıyla birden fazla NULL varsa yalnızca bir kez görünür.
Sorgu:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
Çıkış:
Test Oluştur