SQL | EKSİ Operatörü
MINUS operatörü iki ile kullanılır SELECT Yalnızca ilk sorgudaki ikinci sorguda bulunmayan satırları döndüren ifadeler. Tüm ortak satırları filtreler ve yalnızca ilk sonuç kümesindeki benzersiz satırları tutar.
Resimli Gösterim :
Yukarıdaki diyagramda görebileceğiniz gibi EKSİ operatörü yalnızca Tablo1'deki sonuç kümesinde bulunan ve Tablo2'deki sonuç kümesinde bulunmayan satırları döndürecektir.
Sözdizimi:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];Yukarıdaki sözdiziminde
- İlk SEÇİM: İsteğe bağlı olarak bir WHERE koşuluyla filtrelenen tablo_adı1'den belirtilen sütunları (sütun1 sütun2 ... sütunN) alır.
- EKSİ: MINUS operatörü, ikinci sorguda bulunmayan ilk sorgudaki satırları döndürür.
- İkinci SEÇİM: İsteğe bağlı olarak bir WHERE koşuluyla filtrelenen tablo_adı2'den aynı sütunları alır.
- Çıkış: Sonuç, tablo_adı2'de bulunmayan tablo_adı1'deki satırları içerir. Kopyalar son çıktıdan kaldırılır.
Tablolar :
Tablo 1
| İsim | Adres | Yaş | Seviye |
|---|---|---|---|
| Sert | delhi | 20 | A |
| Gaurav | jaipur | 21 | B |
| Pratik | Mumbai | 21 | A |
| Dhanraj | Kalküta | 22 | B |
Tablo 2
| İsim | Yaş | Telefon | Seviye |
|---|---|---|---|
| Akaşa | 20 | XXXXXXXXX | A |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | A |
| Dhanraj | 22 | XXXXXXXXX | B |
Sorgular :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Çıkış:
| İsim | Yaş | Seviye |
|---|---|---|
| Sert | 20 | A |
| Gaurav | 21 | B |
| Pratik | 21 | A |
Bu sorguda:
- Yalnızca Tablo1'e özgü satırları döndürür.
- Her iki tablodaki son satır aynı ise sonuçtan hariç tutulur. Böylece Tablo1'in yalnızca ilk üç satırı döndürülecektir.
Test OluşturNot :
- MINUS operatörü Oracle'da desteklenir ancak SQL Server veya PostgreSQL'de desteklenmez.
- Bu veritabanları için şunu kullanın:
EXCEPTalternatif olarak operatör.