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

¿¿¿select... if... from.... [where...]???

Estas en el tema de ¿¿¿select... if... from.... [where...]??? en el foro de Bases de Datos General en Foros del Web. hola, buenas a todos: he visto por ahi, algunas consultas de gente preguntando sus dudas, y vi una (bastante complicada por cierto) en la que ...
  #1 (permalink)  
Antiguo 17/04/2008, 04:06
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Información ¿¿¿select... if... from.... [where...]???

hola, buenas a todos:

he visto por ahi, algunas consultas de gente preguntando sus dudas, y vi una (bastante complicada por cierto) en la que dentro del select habia un if, es decir, "SELECT[campos] IF(????] [masCampos] FROM [tabla]......"

hace unos dias que estoy buscando como se hace este if (su sintaxis y funcionamiento) dentro del select, y al verlo aki en una consulta de otro forero, keria preguntaros si alguien me puede explicar como funciona, su sintaxis y todo eso.

tb kerria saber donde lo puedo utilizar: en sql server, oracle, mysql....

muchas gracias por adelantado. un saludo
  #2 (permalink)  
Antiguo 18/04/2008, 02:20
Avatar de gianco321  
Fecha de Ingreso: abril-2008
Ubicación: Lima
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Re: ¿¿¿select... if... from.... [where...]???

Hola el if hasta donde yo conozco no se puede en un Select pero lo puedes hacer de la siguiente form usando el Case, un ejemplo:

USE AdventureWorks;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO

Y se puede utilizar en MySQL, SQL Server, Posgress.

Espero haber resuelto tu duda lobo.
  #3 (permalink)  
Antiguo 18/04/2008, 03:03
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: ¿¿¿select... if... from.... [where...]???

os dejo el enlace de la pagina donde lo he visto
http://www.forosdelweb.com/f86/consulta-sql-complicada-576097/

fijaros bien ke hay dos if dentro del select
  #4 (permalink)  
Antiguo 18/04/2008, 05:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: ¿¿¿select... if... from.... [where...]???

Hola, Pikeres,

En MySQL el IF como función de control de flujo se puede hacer en el SELECT.
ejemplo 1) te muestra el valor del campo1, y, además, si el valor del campo1 es mayor que 3, te muestra el texto primero y si no el segundo:
SELECT campo1, IF (campo1 >3, "es mayor que tres", "es menor que tres") AS resultado FROM nombretabla.

Naturalmente, también puedes mostrar campos:
ejemplo2) si el valor del campo1 es mayor que 3, te muestra el campo1 y si no el campo2
SELECT IF(campo1 > 3, campo1, campo2) AS campocondicionado FROM TABLA

El IF está pensado para una condición con dos opciones, aunque se puede anidar. Pero para hacer eso mejor, es decir, elegir entre varias opciones, debes usar el case when... then, que también puede usarse en el select, y cuya estructura es la que te ha mostrado GIANCO321. En este ejemplo lo que hacemos es ver el valor numérico del mes de un campo fecha, y según el valor, mostrar el nombre del mes en español. Aquí lo tienes en un select

SELECT
CASE WHEN MONTH(campofecha) = 1 THEN "enero"
WHEN MONTH(campofecha) = 2 THEN "febrero"
WHEN MONTH(campofecha) = 3 THEN "marzo"
WHEN MONTH(campofecha) = 4 THEN "abril"
WHEN MONTH(campofecha) = 5 THEN "mayo"
WHEN MONTH(campofecha) = 6 THEN "junio"
WHEN MONTH(campofecha) = 7 THEN "julio"
WHEN MONTH(campofecha) = 8 THEN "agosto"
WHEN MONTH(campofecha) = 9 THEN "septiembre"
WHEN MONTH(campofecha) = 10 THEN "octubre"
WHEN MONTH(campofecha) = 11 THEN "noviembre"
WHEN MONTH(campofecha) = 12 THEN "diciembre"
ELSE "esto no es un mes" END AS MESespañol from nombretabla

Sobre estas funciones de control de flujo, mira este enlace:

http://dev.mysql.com/doc/refman/5.0/...functions.html
  #5 (permalink)  
Antiguo 18/04/2008, 05:39
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
Antigüedad: 16 años
Puntos: 0
Re: ¿¿¿select... if... from.... [where...]???

MUCHAS GRACIAS JURENA Y GIANCO!!!!

una ultima pregunta, ese IF se puede utilizar en mysql, oracle y sql server (son los gestores que he utilizado, y se ke algunos de ellos cambian algunas cosillas)

un saludo
  #6 (permalink)  
Antiguo 18/04/2008, 07:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: ¿¿¿select... if... from.... [where...]???

Pikeres,
Para SQL, mira lo que dice BrujoNic en este post
http://www.forosdelweb.com/f86/if-dentro-sql-477665/

Pero para tener un mejor conocimiento, debes recurrir a los manuales de referencia oficiales.
Yo sólo puedo ofrecerte el de MySQL
http://dev.mysql.com/doc/refman/5.0/es/index.html

y este otro para MySqL, que a mí me gusta especialmente
http://mysql.conclase.net/curso/index.php

Última edición por jurena; 18/04/2008 a las 08:16
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:29.