Re: [pgsql-ayuda] IIF y procedimientos almacenados...

From: José Soares <sferac(at)bo(dot)nettuno(dot)it>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx, enoeda(at)virtualsw(dot)es
Subject: Re: [pgsql-ayuda] IIF y procedimientos almacenados...
Date: 1999-03-29 12:58:08
Message-ID: 36FF78E0.93891E8@bo.nettuno.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Eduardo Noeda ha scritto:

> Hola:
>
> He empezado hace muy poco tiempo con PostgreSQL, y he necesitado algo similar al iif de SQL Server o Access y no lo he encontrado. ¿Hay alguna función que haga algo parecido? Como no lo encontré intenté hacer un procedimiento almacenado, pero no logro que funcione. Hice el código en C y lo introduje en la BD (no dió ningún tipo de error) pero cuando lo uso en una consulta no lo reconoce. ¿Alguien sabe cómo se puede crear una función de este tipo?
> --
> Eduardo Noeda -- Virtual Software
> enoeda(at)virtualsw(dot)es
>
> --------- Pie de mensaje -------------------------------------------
> Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
> Cancelar inscripcion:
> mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
> text : cancelacion pgsql-ayuda

Que tal una funcion escrita en plpgsql ?

drop function iif(bool,text,text);
create function iif(bool,text,text) returns text as
'
begin
IF $1 THEN
RETURN $2;
ELSE
RETURN $3;
END IF;
end;
' language 'plpgsql';

ejemplos:

select val, iif(val>100,'es mayor de 100','no es mayor de 100') as cien
from test;
val|cien
---+------------------
1|no es mayor de 100
101|es mayor de 100
100|no es mayor de 100
150|es mayor de 100
(4 rows)

select iif(2<1,'verdad','mentira');
iif
-------
mentira
(1 row)

Espero que sea esto que estas cercando.

José

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Omar Mendoza 1999-03-29 15:06:05 [pgsql-ayuda] PROPOSITO USAR ROXEN-ROXEN y PGSQL-FORMS-ROXEN
Previous Message José Soares 1999-03-29 12:30:52 Re: [pgsql-ayuda] Foreign key