83 votes

Requête SQL - à l’aide de Order By dans l’UNION

Comment peut on Trier par programme une requête union en extrayant des données de deux tables ? Par exemple,

Lève une exception

Remarque : Ceci est tentée sur le moteur de base de données MS Access Jet

118voto

user409401 Points 651

Parfois vous devez avoir le dans chacune des sections qui doivent être combinés avec .

Dans ce cas

64voto

Anne Porosoff Points 1468
SELECT Tbl1.field1
FROM ( SELECT field1 FROM table1
       UNION
       SELECT field1 FROM table2
     ) Tbl1
ORDER BY Tbl1.field1

57voto

Anson Smith Points 2905

Je pense que ce qui fait un bon travail en expliquant.

Ce qui suit est une UNION de requête qui utilise une clause ORDER BY:

select supplier_id, supplier_name
from suppliers
where supplier_id > 2000
UNION
select company_id, company_name
from companies
where company_id > 1000
ORDER BY 2;

Depuis les noms de colonne sont différents entre les deux déclarations "select", il est plus avantageux de référence les colonnes dans la clause ORDER BY par leur position dans le jeu de résultats. Dans cet exemple, nous avons trié les résultats par supplier_name / company_name dans par ordre croissant, comme en témoignent les "COMMANDE PAR 2".

Le supplier_name / company_name les champs sont en position n ° 2 dans le jeu de résultats.

Prises à partir d'ici: http://www.techonthenet.com/sql/union.php

28voto

Ian Boyd Points 50743

À l’aide d’un exemple concret :

Fichiers :

Dossiers :

Désiré sortie : (résultats de première sélectionnez tout d’abord, c.-à-d. dossiers d’abord)

SQL pour obtenir les résultats souhaités :

17voto

Todd Price Points 703

Voici un exemple de Northwind 2007 :

La clause ORDER BY a juste besoin d’être la dernière instruction, après que vous avez fait tout votre Union. Vous pouvez le syndicat plusieurs jeux ensemble, puis mettez une clause ORDER BY après la dernière série.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X