1 odpowiedź

Unie w SQL to operacje sumujące dowolną ilość zbiorów*.

Różnica polega jedynie na tym, że w wyniku operacji UNION usunięte zostają duplikaty powstałe po łączeniu zbiorów, a wynikiem operacji UNION ALL będą wszystkie wpisy z obu zbiorów.

Ważne!
Łączone zbiory muszą być zbudowane w ten sam sposób, a dokładniej mówiąc:
- muszą mieć identyczną liczbę kolumn
- typy odpowiadających sobie kolumn muszą być kompatybilne


Przykłady:
W celu łatwiejszego zrozumienia tematu posłużymy się dwoma prostymi tabelami: Car oraz Mark (marka pojazdu).
Tabele zostały wypełnione przykładowymi danymi. Na żółto oraz zielono zaznaczono duplikujące się wpisy w tych tabelach.

Przygotowanie tabel

CREATE TABLE Car (
	Id int,
	MarkName NVARCHAR(15)
)
CREATE TABLE Mark (
	Id INT,
	Name NVARCHAR (20)
)

UNION

SELECT Id, MarkName FROM Car
UNION
SELECT Id, Name FROM Mark

UNION ALL

SELECT Id, MarkName FROM Car
UNION ALL
SELECT Id, Name FROM Mark

Link do dyskusji ile unii możemy wykonać w jednym zapytaniu:
*https://stackoverflow.com/questions/6676970/sql-server-whats-the-limit-on-number-of-unions

Zaloguj się lub zarejestruj by dodać odpowiedź.


© 2018 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci