Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Orden de consulta.

Estas en el tema de Orden de consulta. en el foro de Mysql en Foros del Web. Buenas tardes, quisiera saber si hay forma de ordenar una consulta segun numeros positivos o negativos de la siguiente forma: registros: 5 2 9 1 ...
  #1 (permalink)  
Antiguo 12/12/2009, 13:34
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Exclamación Orden de consulta.

Buenas tardes,
quisiera saber si hay forma de ordenar una consulta segun numeros positivos o negativos de la siguiente forma:


registros: 5 2 9 1 -5 -3 -10

y que al hacer la consulta queden así:

1
2// primero los positivos de menor a mayor y luego los negativo de mayor a menor
5
9
-10
-5
-3

no tengo idea si es posible, agradesco cualquier comentario.. GRACIAS!
  #2 (permalink)  
Antiguo 13/12/2009, 07:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Orden de consulta.

Es un ordenamiento un tanto extraño, pero se puede haer usando dos sentencias SELECT, ambas con sus WHERE y ORDER BY respectivos.
El problema es que como cada segmento tiene su propio ORDER BY, y el UNION sólo admite uno en forma global para todo el resultado, entonces debe hacerse por subconsultas:
Código MySQL:
Ver original
  1.   (SELECT *
  2.   FROM tabla t
  3.   WHERE x >=0
  4.   ORDER BY x ASC) T1
  5.   (SELECT *
  6.   FROM tabla t
  7.   WHERE x <0
  8.   ORDER BY x ASC) T2;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:14.