Aracılığıyla paylaş


Sonuçlarını birleştiren birleşim ayarlar

BİRLEŞİM işleç iki veya daha fazla select deyimi tek bir sonuçlar küme içine sonuçlarını birleştirmenizi sağlar.UNION kullanarak birleştirilen sonuç kümeleri tüm aynı yapıya sahip olması gerekir.Aynı sayıda sütun olması gerekir ve karşılık gelen sonuç küme sütunlarından uyumlu veri türlerine sahip olmanız gerekir.Daha fazla bilgi için bkz: UNION kullanma yönergeleri.

UNION olarak belirtilir:

select_statement UNION [ALL] select_statement

Örneğin, tablo1 ve tablo2 sahip aynı iki -sütun yapısı.

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üme aşağıdadır:

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

Sonuç BİRLİĞİ olan sütun adları aynı, ilk select sonuç küme sütun adları olarak deyim BİRLİĞİ'ndeki.Bir select Deyimleri sonuç küme sütun adlarını dikkate alınmaz.

Varsayılan olarak, yinelenen satırları arasında birleşim işleci kaldırır sonuç küme.Tüm kullanırsanız, tüm satırları dahil sonuçlar ve çoğaltmaları kaldırılmaz.

Tam sonuçlar bir işlem bağlıdır yükleme ve order by yan tümce tümce tümce sırasında seçilen harmanlama.Farklı alfabe etkileri hakkında daha fazla bilgi için bkz: Alfabe ile çalışma.

Herhangi bir sayıda birleşim işleçler bir 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 2005 değerlendirir bir deyim içerir birleşim işleçler soldan sağa doğru.Değerlendirme sırasını belirtmek için ayraç kullanın.Örneğin, aşağıdaki ifadeler eşdeğerdir değil:

/* 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 Birliği'ndeki elenip TableB ve TableC.Bu küme arasında Birliği'ndeki ve TableA, Yinelenenleri elemiş değil.İkinci deyim, çoğaltmalar Birliği'ndeki eklenir TableA ve TableB, ancak sonraki Birliği ile ortadan TableC.Bu sonuç üzerinde etkisi olan tüm ifade.

Tek tek select deyimleri UNION kullanıldığında, kendi order by veya compute yan tümceleri olamaz.Olabilir tek bir order by veya compute yan tümce tümce tümce sonra son deyim; final için uygulanan bir araya sonuç küme.group by ve HAVING yalnızca tek tek select deyimleri belirtilebilir.