Articles

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 1jelö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