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

¿Se puede meter una condición en una columna a mostrar de una select?

Estas en el tema de ¿Se puede meter una condición en una columna a mostrar de una select? en el foro de Bases de Datos General en Foros del Web. Lo que quiero saber, es si puedo realizar lo siguiente: select campo1, campo2-campo_X as diferencia from Tabla WHERE campo4=1 or campo4=2 Y, donde pone campo_X, ...
  #1 (permalink)  
Antiguo 18/07/2007, 04:48
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
¿Se puede meter una condición en una columna a mostrar de una select?

Lo que quiero saber, es si puedo realizar lo siguiente:

select campo1, campo2-campo_X as diferencia from Tabla WHERE campo4=1 or campo4=2

Y, donde pone campo_X, poner campo_3 o campo_5 dependiendo de alguna condición. Es decir, que utilice en la select un campo a mostrar dependiendo de algo (y ese algo dependería del valor de campo4 que va incluido en el where, por ejemplo). ¿Se puede? Me imagino que no, que se tendrían que utilizar varias consultas.
  #2 (permalink)  
Antiguo 18/07/2007, 05:04
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: ¿Se puede meter una condición en una columna a mostrar de una select?

Solucionado. Se puede con el uso de CASE:

select campo1, campo2 - (CASE campo4 WHEN 'Valor1 THEN campo3 ELSE campo5) from tabla1 where ...
  #3 (permalink)  
Antiguo 18/07/2007, 15:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: ¿Se puede meter una condición en una columna a mostrar de una select?

que hay programador net, oye eso ya te lo puse en el tema anterior...

Ponte pilas, no hagas quedar mal al gremio .net
  #4 (permalink)  
Antiguo 19/07/2007, 06:18
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: ¿Se puede meter una condición en una columna a mostrar de una select?

Juas. No, lo que me pusiste fue una resta simple sql de dos columnas fijas (y gracias por ello), sin tener en cuenta que un operando podía ser una entre varias columnas (que es lo que quería averiguar cuando abrí este tópic).

También me pusiste cómo obtener el máximo o el mínimo de entre dos columnas, y ahí se utilizaba el case, pero el fin era claramente distinto. El caso es que o yo esa parte no la miré a fondo pues aún no me hacía falta (y pude pensar que sólo obtenía uno entre dos valores), o di por hecho que era una parte para realizar funciones matemáticas oracle y no flujos del tipo "if... else", y no caí que lo que habías puesto no permitía obtener sólo el máximo o el mínimo (una distinción entre dos valores), sino que era un condicional que podía usarse para realizar comparaciones entre varias columnas como si se usaran varios if. Total, al final tuve que redescubrir el CASE por mi cuenta.

Saludos y suerte
  #5 (permalink)  
Antiguo 19/07/2007, 09:01
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Re: ¿Se puede meter una condición en una columna a mostrar de una select?

Juas!!!! Oye eso tiene patente

Bueno en realidad el case funciona como IF o como SELECT CASE (O SWITCH si programas en C#)

no se porqué no inventaron la condición IF para usar en los querys, es como genérica
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 13:53.