Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 17-abr-2008, 04:06   #1 (permalink)
pikeres no se puede cailificar en este momento
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
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
pikeres está desconectado   Responder Citando
Antiguo 18-abr-2008, 02:20   #2 (permalink)
gianco321 ha deshabilitado el karma
 
Avatar de gianco321
 
Fecha de Ingreso: abril-2008
Ubicación: Lima
Mensajes: 6
Enviar un mensaje por MSN a gianco321
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.
gianco321 está desconectado   Responder Citando
Antiguo 18-abr-2008, 03:03   #3 (permalink)
pikeres no se puede cailificar en este momento
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
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
pikeres está desconectado   Responder Citando
Antiguo 18-abr-2008, 05:09   #4 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 591
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
jurena esta en línea ahora   Responder Citando
Antiguo 18-abr-2008, 05:39   #5 (permalink)
pikeres no se puede cailificar en este momento
 
Fecha de Ingreso: abril-2008
Ubicación: ALICANTE
Mensajes: 17
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
pikeres está desconectado   Responder Citando
Antiguo 18-abr-2008, 07:54   #6 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 591
Re: ¿¿¿select... if... from.... [where...]???

Pikeres,
Para SQL, mira lo que dice BrujoNic en este post
if dentro de sql

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-abr-2008 a las 08:16.
jurena esta en línea ahora   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 07:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93