Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   consulta sobre una consulta :D (https://www.clubdelphi.com/foros/showthread.php?t=68211)

PablorD 01-06-2010 02:14:20

consulta sobre una consulta :D
 
hola. quisiera saber si hay alguna forma de hacer una consulta de MySQL que:

si un campo = null o está vacio tome los datos desde otro y continue... por ejemplo

tengo
nombre1,nombre2,nombrea1,nombrea2

si ago un select y nombrea1 esta vacío que muestre nombre1 y nombrea2.
si ago un select y nombrea2 esta vacío que muestre nombrea1 y nombre2 .
si nombrea1 y nombrea2 están vacíos que muestre nombre1 y nombre2

si estan todos los campos llenos que el select muestre nombrea1 y nombrea2.

obiamente el caso de ejemplo es chico pero algo asi es lo que quero saber.. si el select puede llevar if y como implementarlo.

hasta ahora solo se hacer cosas basicas con MySQL.

si hay solucion porfavor comenten, si no hay .. tambien para empesar a trabajar en el codigo y hacer un select para cada caso. igual se me ocurre poner los if por codigo y poner sql.add y seguir concaenando a medida que pase los if ... bueno, ya se me ocurrio como hacerlo por codigo, pero quero saber como se hace via mysql si es que se puede ya que seria la consulta de un reporte entonces prefiero poner el query solamente !

muchas gracias por tu tiempo y leer esto!!

Caral 01-06-2010 02:16:26

Hola
Me imagino que usando:
Case when ....... else......end.
Saludos

Caral 01-06-2010 02:27:37

Hola
Código Delphi [-]
SELECT
    id, nombre,
    CASE
        WHEN pais="Argentina"    THEN "Argentino"
        WHEN pais="España"       THEN "Español"
        ELSE                     "De algun rincón del mundo"
    END AS nacionalidad
FROM clientes;
Saludos

PablorD 01-06-2010 04:58:38

:O case! que bien!... vere si lo puedo implementar, muchas gracias, mañana te cuento que tal me fue.. gracias!!!

PablorD 02-06-2010 21:59:51

me fue mal con case e isnull ...

pero lo solucione así

Código SQL [-]
select IFNULL(Nombrea1,nombre1) as algo from Tabla;

esto en caso de que nombrea1 sea null entrega nombre1, si no entrega nombrea1, justo lo que necesitava :D. y se puede usar en secuencia tambien

Código SQL [-]
select id,algomas,ciudad,IFNULL(Nombrea1,nombre1) as algo,IFNULL(Nombrea2,nombre2) as algo2 from Tabla;


muchas gracias por lo de case. no supe implementarlo para campos.


La franja horaria es GMT +2. Ahora son las 16:21:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi