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

como puedo hacerlo?

Estas en el tema de como puedo hacerlo? en el foro de Bases de Datos General en Foros del Web. Tengo varias personas con distintos estados. Los estados son: 0-1-2-3-4 Bien pues tengo una sql para sacar personas de la base de datos y tengo ...
  #1 (permalink)  
Antiguo 26/03/2009, 02:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
como puedo hacerlo?

Tengo varias personas con distintos estados. Los estados son: 0-1-2-3-4

Bien pues tengo una sql para sacar personas de la base de datos y tengo que sacarlos en orden por la columna estado, pero el orden tiene que ser 1-0-2-3-4

Como prodría hacer esa consulta? HAy alqun truquillo o manera?
  #2 (permalink)  
Antiguo 26/03/2009, 07:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: como puedo hacerlo?

Hola leean

Si usas MySQL esto te puede servir:

Código MySQL:
Ver original
  1. select *from tabla_persona where estado = 1
  2. select *from tabla_persona where estado = 0
  3. select *from tabla_persona where estado not in(1,0);

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 26/03/2009, 11:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: como puedo hacerlo?

Hay varios truquillos para hacer lo que quieres. Pero dado que creo que estado es un campo de tipo int y no puede introducirse decimal, lo que nos permitiría usar un replace en el order by para finiquitar todo, te propongo el uso de case when... then en el order by
Código sql:
Ver original
  1. SELECT nombre, estado FROM `tabla` ORDER BY (CASE WHEN estado = 1 THEN 1 WHEN estado = 0 THEN 2 WHEN estado = 2 THEN 3 WHEN estado = 3 THEN 4 WHEN estado = 4 THEN 5 WHEN estado = 5 THEN 6 END)
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 10:58.