SQL | EKSİ Operatörü

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 :

sql-eksi

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.

Not :

  • MINUS operatörü Oracle'da desteklenir ancak SQL Server veya PostgreSQL'de desteklenmez.
  • Bu veritabanları için şunu kullanın: EXCEPT alternatif olarak operatör.
Test Oluştur