Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Firebir y usar "IF" en la clausula "SELECT"

Pues eso, ¿existe la posibilidad de usar el if dentro de la cláusula SELECT? con firebird, claro está.

Es una pregunta escueta pero clara.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #2  
Antiguo 24-07-2006
bismarck_sierra bismarck_sierra is offline
Miembro
 
Registrado: ene 2004
Ubicación: Morelia, Michoacán, México
Posts: 70
Poder: 21
bismarck_sierra Va por buen camino
Que tal

No puedes utilizar IF, pero si CASE:

Código SQL [-]

SELECT fecha, hora, CASE estatus WHEN 'A' THEN 'ACTIVO' WHEN 'C' THEN 'CANCELADO' END  AS estatus FROM ventas
Responder Con Cita
  #3  
Antiguo 24-07-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con firebird 1.5 puedes usar coalesce.

Pongamos un ejemplo:

Tenemos una tabla de artículos con varios precios y algunos pueden ser nulos, con la siguiente sentencia devolvería el primer campo no null que encuentre
Código:
select  coalesce(precio1,precio2) as precio from tbArticulos
Si precio1=null y precio2=25

En este caso devolvería 25, el primer campo que no es null.

coalesce es equivalente a case, lo anterior sería algo parecido a esto:

Código:
select case when precio1 is not null then precio1 else precio2 end
Responder Con Cita
  #4  
Antiguo 25-07-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Requete interesante, pero extendamos la cuestión un poco mas:
-Y si los campos en vez de null, contienen valores varios, como por ejemplo

Código:
Precio1   Precio2   Precio3
-------         -------       -------
    0          123           0
 125             0         12
 454             0           0
 225             0           4
    0           45            0
Y lo que deseo, es coger los valores que no son 0.

¿Es posible? (dentro de firebird siempre, claro esta)

Gracias por las respuestas.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #5  
Antiguo 25-07-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por papulo
Requete interesante, pero extendamos la cuestión un poco mas:
-Y si los campos en vez de null, contienen valores varios, como por ejemplo

Código:
Precio1   Precio2   Precio3
-------         -------       -------
    0          123           0
 125             0         12
 454             0           0
 225             0           4
    0           45            0
Y lo que deseo, es coger los valores que no son 0.

¿Es posible? (dentro de firebird siempre, claro esta)

Gracias por las respuestas.
alomejor vale algo así:
Código:
select case when precio1>0 then precio1 else precio2 end
Responder Con Cita
  #6  
Antiguo 25-07-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Como siempre, muchisisisimas gracias, ha funcionado a la perfección.

Casimiro, re-graciaaaaaaaaaas...

PD: ¿Ya tienes internet en el curro?
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #7  
Antiguo 25-07-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por papulo
Como siempre, muchisisisimas gracias, ha funcionado a la perfección.

Casimiro, re-graciaaaaaaaaaas...

PD: ¿Ya tienes internet en el curro?


Sí, por fín, tenemos 2 líneas adsl, una con jazztel y otra con Ya, ambas dejaron de funcionar la semana pasada, de nada sirvieron las llamadas a los "servicios técnicos" de ambas empresas (como era de esperar). Finalmente lo hemos resuelto nosotros reseteándolos y metiendo de nuevo los datos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿cuál es mejor: "close" o "application.terminate"? unreal4u Varios 5 05-03-2007 11:01:19
porque no me reconoce los caracteres "*" ni "%" cuando filtro mrmago Conexión con bases de datos 10 27-01-2006 04:21:16
"whois" conectado en mi servidor and "where" coletaum Varios 7 05-01-2004 14:57:03
Tipo de Variable."String" ó "Double" UTECYBER OOP 7 15-12-2003 20:25:39


La franja horaria es GMT +2. Ahora son las 01:18:41.


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
Copyright 1996-2007 Club Delphi