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

Distintos alias en funcion de distintos where?

Estas en el tema de Distintos alias en funcion de distintos where? en el foro de Mysql en Foros del Web. Hola a todos, tengo unproblemilla que no consigo solucionar, y es que no sé si se puede hacer o no: tengo una tabla (en realidad ...
  #1 (permalink)  
Antiguo 10/01/2006, 06:45
 
Fecha de Ingreso: noviembre-2004
Mensajes: 17
Antigüedad: 19 años, 5 meses
Puntos: 0
Distintos alias en funcion de distintos where?

Hola a todos, tengo unproblemilla que no consigo solucionar, y es que no sé si se puede hacer o no:

tengo una tabla (en realidad proviene de una SELECT) con varias columnas, y quiero asignar un alias distintos en función del valor del campo de una de esas columnas. Me explico: si tengo las columnas CAMPO1 y CAMPO2, yo lo que pretendo es asignar a CAMPO1 el alias BAJO si su valor es 2 (por ejemplo), y asignarle el alias ALTO si su valor es 10.

Es decir, la cosa sería algo así como:

SELECT CAMPO1 AS BAJO, CAMPO1 AS BAJO, CAMPO2
FROM
(
... //aquí estaría otra SELECT que me devuelve la tabla formada por las
... //columnas CAMPO1 y CAMPO2
)
WHERE CAMPO1 = 2 //condición para asignar el alias BAJO
WHERE CAMPO1 = 10 //condición para asignar el alias ALTO

Evidentemente, esta sintaxis no es correcta, pero es para reflejar más o menos mi objetivo. La solución más fácil es repetir el código para cada alias, y pero en el ejemplo que he puesto sólo hay 2 alias (y en mi caso real son 11), por lo qe lo descarto porque el código sería 11 veces más extenso.

Si sabéis cómo hacerlo, os agradecería mucho alguna respuesta.

Muchas gracias!
  #2 (permalink)  
Antiguo 11/01/2006, 06:14
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
select if(campo1=2, 'bajo',if(campo1=10,'alto','normal')) as estatura, campo2 from .....

con esto en estatura si es 2 te dice bajo, si es 10 alto y si es distinto normal.
  #3 (permalink)  
Antiguo 24/01/2006, 03:26
 
Fecha de Ingreso: noviembre-2004
Mensajes: 17
Antigüedad: 19 años, 5 meses
Puntos: 0
Muchas gracias
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 00:43.