Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   condiciones en interbase (https://www.clubdelphi.com/foros/showthread.php?t=8577)

squenda 26-03-2004 06:28:37

condiciones en interbase
 
Hola foreros, mi pregunta es la siguiente:

Anteriormente utilizaba Oracle y PL/SQL y hay una funcion llamada DECODE que utilizaba y que es como un IF, ejemplo:

SELECT DECODE(Sexo,'M','Masculino','Femenino') FROM Clientes

lo que hace la sentencia es que si el sexo es 'M' me devuelve 'Masculino' de lo contrario me devuelve 'Femenino'

no se si interbase contenga algo parecido, si alguien sabe algo al respecto le agradecere mucho me lo haga saber, Gracias.

Saludos a todos

jachguate 26-03-2004 07:34:24

No hay nada parecido... pero para conseguir el mismo efecto, podes hacerlo en un Stored Procedure, justamente con un if que asigne el la descripción (en este caso) de acuerdo al valor...

Creeme que es una de las bondades que mas se extrañan de Oracle en interbase, cuando estas haciendo Queryes.

algo de código (quizas la sintaxis este mala... pero es una idea)

Código:

Alter procedure consulta returning (sexo VarChar(20)) AS
declare variable sex VarChar(1);
Begin
  for Select sexo from clientes into sex do
  begin
    if (sex = 'M') Then
      sexo = 'Masculino';
    else
      sexo = 'Femenino';
    suspend;
  end
end

por cierto... tampoco hay create or replace... y mil cosas mas...

Hasta luego.

;)

__cadetill 26-03-2004 14:22:04

sino recuerdo mal, en Firebird tambien tienes la sentencia CASE (no lo puedo probar ahora porque no tengo enFB instalado en este PC)

Sería algo así (desde un SQL)

Código:

select
  (case
    with sexo = 'M' then 'Masculino'
    else 'Femenino'
  ) sexo
from clientes
where condiciones


guillotmarc 26-03-2004 14:33:02

Hola.

Solo en Firebird 1.5 existe el CASE, Interbase no lo tiene, y Firebird 1 tampoco.

SELECT CASE WHEN Sexo = 'M' THEN 'Masculino' ELSE 'Femenino' END FROM Clientes

Saludos.

__cadetill 26-03-2004 14:36:01

Cita:

Empezado por guillotmarc
Hola.

Solo en Firebird 1.5 existe el CASE, Interbase no lo tiene, y Firebird 1 tampoco.

SELECT CASE WHEN Sexo = 'M' THEN 'Masculino' ELSE 'Femenino' END FROM Clientes

Saludos.

Eso, eso, con WHEN y el END del final!!!! Ya decía yo que de memoria no lo estaba haciendo bien!!!! :o

squenda 29-03-2004 02:54:49

gracias a todos pues una de dos o me instalo el Fire Bird o me hago un stored procedure. muchas gracias


La franja horaria es GMT +2. Ahora son las 12:00:08.

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