Articles

SQL: UNION Operator (Čeština)


Příklad – Různé Názvy polí

není nutné, aby odpovídající sloupce v každé SELECT mají stejný název, ale musí být stejné odpovídající datové typy.

Když nemáte stejné názvy sloupců mezi příkazy SELECT, je to trochu ošidné, zvláště když chcete, aby výsledky dotazu pomocí klauzule ORDER BY.

podívejme se, jak používat operátora UNIE s různými názvy sloupců a objednat výsledky dotazu.,

například:

SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;

V tomto SQL UNIE příklad, protože názvy sloupců, které se liší mezi dvěma příkazy SELECT, je výhodnější odkazovat sloupce v klauzuli ORDER BY podle jejich postavení v sadě výsledků. V tomto příkladu jsme třídit výsledky podle supplier_id / company_id ve vzestupném pořadí, jak je označován ORDER BY 1. Pole supplier_id / company_id jsou v pozici #1 v sadě výsledků.

Nyní, pojďme prozkoumat tento příklad dále s daty.,p>

SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;

Byste získat následující výsledky:

supplier_id supplier_name
3000 Apple
4000 Samsung
7000 Sony
8000 IBM

za Prvé, všimněte si, že záznam s supplier_id 3000 se zobrazí pouze jednou v sadě výsledků, protože UNIE dotazu odstraněny duplicitní položky.,

za druhé, všimněte si, že záhlaví sloupců v sadě výsledků se nazývají supplier_id a supplier_name. Je to proto, že se jednalo o názvy sloupců používané v prvním výběrovém prohlášení v Unii.

Pokud jste chtěl, mohl jste aliasy sloupců takto:

SELECT supplier_id AS ID_Value, supplier_name AS Name_ValueFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id AS ID_Value, company_name AS Name_ValueFROM companiesWHERE company_id > 1000ORDER BY 1;

Nyní sloupců ve výsledku bude aliasem jako ID_Value pro první sloupec a Název_hodnota pro druhý sloupec.,

ID_Value Name_Value
3000 Apple
4000 Samsung
7000 Sony
8000 IBM