Aracılığıyla paylaş


sonuçlar birleştiren BIRLEŞIM ile ayarlar.

Tek bir sonucu olarak iki veya daha çok SELECT deyimi sonuçlarlarını birleştirmek birleşim işlecini sağlayan küme.UNION kullanarak birleştirilen sonuç kümelerini tümü aynı yapıya sahip olmanız gerekir.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: Birleşim kullanma yönergeleri.

UNION olarak belirtilir:

select_statement UNION [ALL] select_statement

Örneğin,Table1Table2 sahip aynı iki sütunlu yapıya.

TABLE1

 

 

TABLE2

 

COLUMNA

COLUMNB

 

COLUMNC

COLUMND

CHAR(4)

INT

 

CHAR(4)

INT

-------

---

 

-------

---

ABC

  1

 

GHI

  3

DEF

  2

 

JKL

  4

GHI

  3

 

MNO

  5

Bu sorgu tablolar arasında bir birleşim oluşturur:

SELECT * FROM Table1
UNION
SELECT * FROM Table2

sonuç kümesi aşağıdadır:

ColumnA  ColumnB
-------  --------
abc      1
def      2
ghi      3
jkl      4
mno      5

Sonuç küme UNION sütun adları sütun adlarının sonuç aynı olan küme UNION ilk SELECT deyiminde.Sonuç küme diğer SELECT deyimi sütun adlarını dikkate alınmaz.

Varsayılan olarak, sonuç birleşim işlecini yinelenen satırları kaldırır küme.ALL kullanırsanız, tüm satırların sonuçlara dahil edilir ve yinelenen kaldırılmadı.

UNION işleminin sonuçlar tam yükleme ve ORDER BY yan tümce sırasında seçtiğiniz harmanlama bağlıdır.Farklı alfabe, etkileri hakkında daha fazla bilgi için bkz:Harmanlamalar ile çalışma.

UNION işleçlerin herhangi bir sayıda Transact-SQL deyim içinde bulunabilir.Örneğin:

SELECT * FROM TableA
UNION
SELECT * FROM TableB
UNION
SELECT * FROM TableC
UNION
SELECT * FROM TableD

Varsayılan olarak,SQL Server 2005UNION işleçleri soldan içeren bir deyim olarak değerlendirilir sağa.Değerlendirme sırasını belirtmek için ayraç kullanın.Örneğin, aşağıdaki ifadeleri eşdeğer değildir:

/* First statement. */
SELECT * FROM TableA
UNION ALL
(   SELECT * FROM TableB
   UNION
   SELECT * FROM TableC
)
GO

/* Second statement. */
(SELECT * FROM TableA
 UNION ALL
 SELECT * FROM TableB
)
UNION
SELECT * FROM TableC)
GO

Açıklamalar

İlk deyim, çoğaltmaları ortadan birleşimTableB and TableC., Bu küme arasındaki birleşim veTableA, çoğaltmalar değil ortadan.İkinci deyim, çoğaltmaları yer birleşimTableA ve TableB , ancak öğeler ortadan, sonraki union ile TableC.ALL bu ifadenin sonucunu etkisi vardır.

UNION kullanıldığında, her SELECT deyimi kendi ORDER BY veya COMPUTE yan tümceleri olamaz.Olabilir yalnızca tek bir ORDER BY veya COMPUTE yan tümce son SELECT deyiminin sonra; bu son, birleştirilen sonuç kümesine uygulanır.İçinde yalnızca tek tek SELECT deyimi GROUP BY ve HAVING belirtilebilir.