299 votes

Comment commander par l'union

Est-il possible de commander lorsque les données proviennent de plusieurs de sélectionner et d'union de l'ensemble.Comme

Select id,name,age
From Student
Where age < 15
Union
Select id,name,age
From Student
Where Name like "%a%"

Comment puis-je commander cette requête par nom.

Certains ont dit que vous pouvez interroger ressembler à ceci.

Select id,name,age
From Student
Where age < 15 or name like "%a%"
Order by name

Mais dans ce cas j'ai simplement ignorer cette solution.

Je vous remercie à l'avance.

373voto

bernd_k Points 3684

Il suffit d'écrire

Select id,name,age
From Student
Where age < 15
Union
Select id,name,age
From Student
Where Name like "%a%"
Order by name

l'ordre est appliqué à la totalité du jeu de résultats

114voto

Mark Robinson Points 5893
Select id,name,age
from
(
   Select id,name,age
   From Student
   Where age < 15
  Union
   Select id,name,age
   From Student
   Where Name like "%a%"
) results
order by name

15voto

Genia S. Points 12190

Les deux autres réponses sont correctes, mais je trouvais ça intéressant de noter que l'endroit où je me suis coincé n'a pas été la réalisation que vous aurez besoin de la commande par l'alias et assurez-vous que l'alias est le même pour les deux sélectionne donc...

select 'foo'
union
select item as `foo`
from myTable
order by `foo`

j'ai utilisé des guillemets simples dans le premier select, mais backticks pour les autres.

Qui vous permettra d'obtenir de tri dont vous avez besoin.

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