sindicatos sindicato sindicales sindical propuestas promover para negociación mejorar ideas estrategias comunicacion colectiva campaña sql

sql - sindicato - propuestas sindicales para promover



Cómo hacer un pedido con un sindicato (6)

¿Es posible ordenar cuando los datos provienen de muchos seleccionarlos y unirlos entre sí? Tal como

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

¿Cómo puedo ordenar esta consulta por nombre?

Algunos dijeron que puedes hacer una consulta como esta.

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

Pero en este caso simplemente ignoro esa solución.

Gracias de antemano.


Ambas otras respuestas son correctas, pero pensé que valía la pena señalar que el lugar donde me quedé atrapado no se daba cuenta de que necesitarías el orden por el alias y te aseguraste de que el alias sea el mismo para las selecciones ... entonces

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

Fíjese que estoy usando comillas simples en la primera selección, pero con barras invertidas para las demás.

Eso te dará la clasificación que necesitas.


Para que la clasificación se aplique solo a la primera declaración en la UNIÓN, puede ponerla en una subselección con UNION ALL (ambas parecen ser necesarias en Oracle):

Select id,name,age FROM ( Select id,name,age From Student Where age < 15 Order by name ) UNION ALL Select id,name,age From Student Where Name like "%a%"

O (respondiendo al comentario de Nicholas Carey) puede garantizar que el SELECT superior esté ordenado y que los resultados aparezcan en la parte inferior SELECCIONAR de la siguiente manera:

Select id,name,age, 1 as rowOrder From Student Where age < 15 UNION Select id,name,age, 2 as rowOrder From Student Where Name like "%a%" Order by rowOrder, name


Si quiero que la clasificación se aplique solo a uno de los UNION si uso Union all:

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


Solo escribe

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

el orden por se aplica al conjunto de resultados completo


Order By se aplica después de la union , de modo que solo agregue una cláusula order by al final de las instrucciones:

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


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