Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
İki sorgunun sonuçlarını karşılaştırarak farklı satırlar döndürür.
EXCEPT, sol giriş sorgusundan sağ giriş sorgusu tarafından çıkarilmeyen ayrı satırlar döndürür.
INTERSECT, hem sol hem de sağ giriş sorguları işleci tarafından çıkış yapılan ayrı satırlar döndürür.
EXCEPT veya INTERSECT kullanan iki sorgunun sonuç kümelerini birleştirmek için temel kurallar şunlardır:
Sütunların sayısı ve sırası tüm sorgularda aynı olmalıdır.
Veri türlerinin uyumlu olması gerekir.
Transact-SQL söz dizimi kuralları
Syntax
{ <query_specification> | ( <query_expression> ) }
{ EXCEPT | INTERSECT }
{ <query_specification> | ( <query_expression> ) }
Arguments
<
> query_specification | ( <query_expression> )
Başka bir sorgu belirtiminden veya sorgu ifadesinden alınan verilerle karşılaştırılacak verileri döndüren bir sorgu belirtimi veya sorgu ifadesidir. EXCEPT veya INTERSECT işleminin parçası olan sütunların tanımlarının aynı olması gerekmez. Ancak örtük dönüştürme ile karşılaştırılabilir olmalıdır. Veri türleri farklı olduğunda, veri türü önceliği kuralları karşılaştırma için çalıştırılacak veri türünü belirler.
Sonuç, türler aynı olduğunda ancak duyarlık, ölçek veya uzunluk bakımından farklı olduğunda ifadeleri birleştirmek için aynı kuralları temel alır. Daha fazla bilgi için bkz . Duyarlık, Ölçek ve Uzunluk (Transact-SQL).
Sorgu belirtimi veya ifadesi xml, metin, ntext, görüntü veya bağlayıcı olmayan CLR kullanıcı tanımlı tür sütunları döndüremez çünkü bu veri türleri karşılaştırılamaz.
EXCEPT
EXCEPT işlecinin solundaki sorgudan tüm ayrı değerleri döndürür. Bu değerler, doğru sorgu da bu değerleri döndürmediği sürece döndürür.
INTERSECT
INTERSECT işlecinin hem sol hem de sağ tarafındaki sorgu tarafından döndürülen tüm ayrı değerleri döndürür.
Remarks
Karşılaştırılabilir sütunların veri türleri EXCEPT veya INTERSECT işleçlerinin solundaki ve sağındaki sorgular tarafından döndürülür. Bu veri türleri, farklı harmanlamalara sahip karakter veri türlerini içerebilir. Bunu yaptıklarında, gerekli karşılaştırma harmanlama önceliği kurallarına göre çalıştırılır. Bu dönüştürmeyi çalıştıramıyorsanız, SQL Server Veritabanı Altyapısı bir hata döndürür.
DISTINCT satırlarını belirlemek için sütun değerleri karşılaştırılırken, iki NULL değer eşit kabul edilir.
EXCEPT ve INTERSECT, sonuç kümesinin sütun adlarını, işlecin sol tarafındaki sorgunun döndürdüğü sütun adlarına benzer şekilde döndürür.
ORDER BY yan tümcelerindeki sütun adları veya diğer adların sol taraftaki sorgu tarafından döndürülen sütun adlarına başvurması gerekir.
EXCEPT veya INTERSECT tarafından döndürülen sonuç kümesindeki herhangi bir sütunun null atanabilirliği, işlecin sol tarafındaki sorgu tarafından döndürülen ilgili sütunun null atanabilirliğiyle aynıdır.
İFADEdeki diğer işleçlerle birlikte EXCEPT veya INTERSECT kullanılıyorsa, aşağıdaki öncelik bağlamında değerlendirilir:
Parantez içindeki ifadeler
INTERSECT işleci
EXCEPT ve UNION ifadedeki konumlarına göre soldan sağa doğru değerlendirildi
İkiden fazla sorgu kümesini karşılaştırmak için EXCEPT veya INTERSECT kullanabilirsiniz. Bunu yaptığınızda, veri türü dönüştürme, bir kerede iki sorgu karşılaştırılarak ve daha önce bahsedilen ifade değerlendirme kurallarına uyularak belirlenir.
EXCEPT ve INTERSECT, dağıtılmış bölümlenmiş görünüm tanımlarında, sorgu bildirimlerinde kullanılamaz.
EXCEPT ve INTERSECT dağıtılmış sorgularda kullanılabilir, ancak yalnızca yerel sunucuda yürütülür ve bağlı sunucuya gönderilmez. Bu nedenle, dağıtılmış sorgularda EXCEPT ve INTERSECT kullanmak performansı etkileyebilir.
Bir EXCEPT veya INTERSECT işlemiyle kullanıldığında sonuç kümesinde yalnızca ileriye doğru hızlı ve statik imleçler kullanabilirsiniz. Bir EXCEPT veya INTERSECT işlemiyle birlikte anahtar kümesi temelli veya dinamik bir imleç de kullanabilirsiniz. Bunu yaptığınızda, işlem sonuç kümesinin imleci statik imlece dönüştürülür.
SQL Server Management Studio'daki Grafik Showplan özelliği kullanılarak BIR EXCEPT işlemi görüntülendiğinde, işlem sol yarıya karşı birleşim olarak, INTERSECT işlemi ise sol yarı birleştirme olarak görünür.
Examples
Aşağıdaki örneklerde ve INTERSECT işleçlerinin EXCEPT kullanımı gösterilmektedir. İlk sorgu, ve Production.Productile INTERSECT sonuçları karşılaştırmak için tablodaki tüm değerleri EXCEPT döndürür.
-- Uses AdventureWorks
SELECT ProductID
FROM Production.Product ;
--Result: 504 Rows
Aşağıdaki sorgu, işlecin hem sol hem de sağ tarafındaki INTERSECT sorgu tarafından döndürülen benzersiz değerleri döndürür.
-- Uses AdventureWorks
SELECT ProductID
FROM Production.Product
INTERSECT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 238 Rows (products that have work orders)
Aşağıdaki sorgu, işlecin solundaki EXCEPT sorgudan, sağ sorguda da bulunmayan benzersiz değerleri döndürür.
-- Uses AdventureWorks
SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 266 Rows (products without work orders)
Aşağıdaki sorgu, işlecin solundaki EXCEPT sorgudan, sağ sorguda da bulunmayan benzersiz değerleri döndürür. Tablolar önceki örnekten tersine çevrilir.
-- Uses AdventureWorks
SELECT ProductID
FROM Production.WorkOrder
EXCEPT
SELECT ProductID
FROM Production.Product ;
--Result: 0 Rows (work orders without products)
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
Aşağıdaki örneklerde ve INTERSECT işleçlerinin EXCEPT nasıl kullanılacağı gösterilmektedir. İlk sorgu, ve FactInternetSalesile INTERSECT sonuçları karşılaştırmak için tablodaki tüm değerleri EXCEPT döndürür.
-- Uses AdventureWorks
SELECT CustomerKey
FROM FactInternetSales;
--Result: 60398 Rows
Aşağıdaki sorgu, işlecin hem sol hem de sağ tarafındaki INTERSECT sorgu tarafından döndürülen benzersiz değerleri döndürür.
-- Uses AdventureWorks
SELECT CustomerKey
FROM FactInternetSales
INTERSECT
SELECT CustomerKey
FROM DimCustomer
WHERE DimCustomer.Gender = 'F'
ORDER BY CustomerKey;
--Result: 9133 Rows (Sales to customers that are female.)
Aşağıdaki sorgu, işlecin solundaki EXCEPT sorgudan, sağ sorguda da bulunmayan benzersiz değerleri döndürür.
-- Uses AdventureWorks
SELECT CustomerKey
FROM FactInternetSales
EXCEPT
SELECT CustomerKey
FROM DimCustomer
WHERE DimCustomer.Gender = 'F'
ORDER BY CustomerKey;
--Result: 9351 Rows (Sales to customers that are not female.)