Aracılığıyla paylaş


Semi-joins EXCEPT ile gerçekleştirmek ve INTERSECT

İkinci giriş en az bir eşleşen satır ise bir semi-birleştirmek ilk girişten satır döndürür.İkinci giriş eşleşen satır, bir anti-birleştirmek ilk girişten satır döndürür.Operatörler için semi-joins ve anti-joins KESİŞTİĞİ ve EXCEPT kullanın.Bu, iki veya daha çok SELECT deyimi sonuçlar karşılaştırmak ve farklı değerleri sağlar.EXCEPT işleç sorgudan EXCEPT sol tarafında ayrı bir değer döndürür işleç, da döndürülmez sorgu sonucunda sağ tarafta.INTERSECT sol ve sağ tarafında INTERSECT her iki sorgu tarafından döndürülen herhangi farklı bir değer döndüren işleç.Kullanarak karşılaştırılan sonuç kümeleri dışında veya KESİŞEN gereken tüm aynı yapıya sahip.Bunlar aynı sayıda sütun olmalıdır ve uyumlu veri türlerine karşılık gelen sonuç kümesi sütun olması gerekir.Daha fazla bilgi için bkz: DıŞıNDA ve INTERSECT (Transact-SQL).

Düşünün tablolarıTableATableB ve aşağıdaki verilerle, ilgili int sütunları col1TableC .

TableA (col1 int)

TableB (col1 int)

TableC (col1 int)

null

null

2

null

1

2

null

3

2

1

4

4

2

4

4

2

2

3

4

4

Kullanarak dışında aşağıdaki sorguyu farklı değerleri sorgudan sol tarafına doğru sorguyu da bulunmayan EXCEPT işlenen verir.

SELECT * FROM TableA EXCEPT SELECT * FROM TableB

Here is the result set.

Col1       
----------- 
2

(1 row(s) affected)

INTERSECT kullanan, bu sorgu, sol ve sağ tarafında INTERSECT her iki sorgu tarafından döndürülen farklı değerleri döndürür işleç.

SELECT * FROM TableA INTERSECT SELECT * FROM TableB

Here is the result set.

Col1       
----------- 
NULL
1
3
4

(4 row(s) affected)

INTERSECT operatörünü EXCEPT üzerinde önceliğe sahiptir.Örneğin, aşağıdaki sorgu her iki işleç kullanır:

SELECT * FROM TableA EXCEPT SELECT * FROM TableB INTERSECT SELECT * FROM TableC

Here is the result set.

Col1       
----------- 
NULL
1
2
3

(4 row(s) affected)