Zalecenia dotyczące używania Unii
Podczas korzystania z operatorów UNION, należy postępować zgodnie z poniższymi wskazówkami:
Wszystkie listy select w instrukcji, które są połączone z UNION muszą mieć taką samą liczbę wyrażeń (kolumna nazwy, arytmetyczne wyrażeń, funkcje agregacja i tak dalej).
Kolumny w zestawach wyników, które są są łączone z UNION lub każdy podzbiór kolumn w poszczególnych kwerendy, muszą być tego samego typu danych, mają Konwersja niejawna danych między typami danych dwóch możliwych lub mieć konwersja jawna dostarczone.Na przykład związek między kolumna Data/Godzina typ danych i jednym plik binarny typ danych nie będzie działać, o ile nie podano konwersja jawna.Jednak będzie działać związek między kolumna pieniądze typ danych i jednym int Typ danych, ponieważ mogą one być niejawnie konwertowane.
Kolumny XML typ danych muszą być równoważne.Wszystkie kolumny muszą być wpisane do schematu XML albo untyped.Jeśli wpisany, muszą one być wpisywane do tego samego zbioru schematu XML.
Odpowiednich kolumn zestaw wyników w poszczególnych instrukcji, które są połączone z UNION muszą występować w tej samej kolejności, ponieważ UNION porównuje jeden-do-jednego, w kolejności podanej w kwerendach poszczególnych kolumn.
Poniżej przedstawiono przykład.
TABLE3
TABLE4
A
B
C
A
B
INT
CHAR(4)
CHAR(4)
CHAR(4)
FLOAT
---
-------
-------
-------
-------
1
ABC
JKL
JKL
1.000
2
DEF
MNO
MNO
5.000
3
GHI
PQR
wykonać tej kwerendy:
SELECT a, b FROM table3 UNION SELECT b, a FROM table4
Poniżej znajduje się zestaw wyników:
a b -------- ----- 1.000000 abc 2.000000 def 3.000000 ghi 1.000000 jkl 5.000000 mno
Różne typy danych są łączone w operacji UNION, że są konwertowane zgodnie z regułami pierwszeństwa typu danych.W poprzednim przykładzie int są konwertowane wartości zmiennoprzecinkowe, because zmiennoprzecinkowe ma wyższy priorytet niż int.Aby uzyskać więcej informacji zobaczData Type Precedence (Transact-SQL).
Ta kwerenda generuje komunikat o błędzie, ponieważ nie są zgodne typy danych odpowiednich kolumn:
SELECT b, c FROM table3 UNION SELECT a, b FROM table4
kolumna Nazwy tabela, w wyniku UNION są pobierane na pierwszą kwerendę poszczególnych instrukcja UNION.Aby odwołać się do kolumna wyników przez nazwę (na przykład w klauzula ORDER BY), kolumna muszą mowa w ten sposób, w polu Wybierz pierwszy:
SELECT city AS Cities FROM stores_west UNION SELECT city FROM stores_east ORDER BY city
See Also