Exemplo – Diferentes Nomes de Campo
não é necessário que as colunas correspondentes em cada instrução SELECT tem o mesmo nome, mas eles não precisam ser os mesmos tipos de dados correspondente.
Quando você não tem os mesmos nomes de colunas entre as declarações selecionadas, ele fica um pouco complicado, especialmente quando você quer encomendar os resultados da consulta usando a cláusula de ordem por.
Let’s look at how to use the UNION ALL operator with different column names and order the query results.,
Por exemplo:
SELECT supplier_id, supplier_nameFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id, company_nameFROM companiesWHERE company_id > 1000ORDER BY 1;
neste SQL UNION ALL exemplo, uma vez que os nomes de coluna são diferentes entre as duas instruções SELECT, é mais vantajoso para fazer referência a colunas na cláusula ORDER BY, por sua posição no conjunto de resultados. Neste exemplo, nós classificamos os resultados por supplier_id / company_id em ordem ascendente, como denotado pelo ORDER BY 1
. Os campos supplier_id / company_id estão na posição # 1 no conjunto de resultados.
Agora, vamos explorar este exemplo mais adiante com dados.,resultados:
supplier_id | supplier_name |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
em Primeiro lugar, observe que o registro com supplier_id de 3000 aparece duas vezes no conjunto de resultados, porque a UNIÃO de TODA a consulta devolve todas as linhas e não remover os duplicados.,
Em segundo lugar, observe que os títulos das colunas no conjunto de resultados são chamados supplier_id e supplier_name. Isto porque estes foram os nomes de colunas usados na primeira instrução selecionada na União todos.
Se você quisesse, você poderia ter suavizado as colunas da seguinte forma:
SELECT supplier_id AS ID_Value, supplier_name AS Name_ValueFROM suppliersWHERE supplier_id > 2000UNION ALLSELECT company_id AS ID_Value, company_name AS Name_ValueFROM companiesWHERE company_id > 1000ORDER BY 1;
Agora, os títulos de coluna no resultado será alias como ID_Value para a primeira coluna e Name_Value para a segunda coluna.,
ID_Value | Name_Value |
---|---|
3000 | Apple |
3000 | Apple |
4000 | Samsung |
7000 | Sony |
8000 | IBM |
Leave a Reply