SQL: UNION Operator (Magyar)
példa-különböző Mezőnevek
nem szükséges, hogy az egyes SELECT utasításokban a megfelelő oszlopok azonos névvel rendelkezzenek, de ugyanazoknak a megfelelő adattípusoknak kell lenniük.
Ha nincs azonos oszlopneve a kijelölési utasítások között, akkor kissé trükkös lesz, különösen akkor, ha a lekérdezés eredményeit a rendelési záradék segítségével szeretné megrendelni.
nézzük meg, hogyan kell használni a UNION operátort különböző oszlopnevekkel, majd rendeljük meg a lekérdezési eredményeket.,
példa:
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
ebben Az SQL UNIÓ példa, mivel az oszlop nevek különböznek a kettő között VÁLASSZUK a kimutatások több előnyös referencia az oszlopok az ORDER BY záradék a helyzetben, a meghatározott eredmény. Ebben a példában az eredményeket supplier_id/company_id szerint rendeztük növekvő sorrendben, amint azt a ORDER BY 1
jelöli. A supplier_id / company_id mezők az eredményhalmazban az 1. pozícióban vannak.
most vizsgáljuk meg ezt a példát tovább az adatokkal.,p>
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNIONSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
a következő eredmények:
supplier_id | supplier_name |
---|---|
3000 | Alma |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Első, figyeljük meg, hogy a bejegyzés supplier_id 3000 csak akkor jelenik meg, ha az eredmény set, mert az UNIÓ lekérdezés eltávolított ismétlődő bejegyzések.,
másodszor, vegye figyelembe, hogy az eredményhalmaz oszlopcímeit supplier_id és supplier_name néven hívják. Ez azért van, mert ezek voltak az oszlopnevek, amelyeket az Unió első SELECT nyilatkozatában használtak.
Ha akarta volna, akkor az oszlopokat az alábbiak szerint lehetett volna álnevezni:
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;
most az eredmény oszlopfejlécei az első oszlop ID_Value-jaként, a második oszlop Name_Value-jaként lesznek nevezve.,
ID_Value | Name_Value |
---|---|
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |