Jaime Casanova escribió:

> la funcion iif en plsql es bastante simple:
> 
> create function iif(boolean, int, int) returns int as$$
>   select case $1 when true then $2 else $3 end;
> $$ language sql;

Esta definicion asume que los valores a retornar son enteros ... mejor
asi:

 create function iif(boolean, anyelement, anyelement) returns int as$$
   select case $1 when true then $2 else $3 end;
 $$ language sql;

Eso debería funcionar para cualquier tipo escalar; no va a funcionar
para arrays.  Quizás esto funcione:

 create function iif(boolean, any, any) returns int as$$
   select case $1 when true then $2 else $3 end;
 $$ language sql;

pero no estoy seguro.  En el peor de los casos podrías definir dos
funciones, una que sea (bool, anyelement, anyelement) y otra que sea
(bool, anyarray, anyarray).  (Habría que ver que hacer con los enums)

-- 
Alvaro Herrera                  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"If it wasn't for my companion, I believe I'd be having
the time of my life"  (John Dunbar)
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
    (envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])

Responder a