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])
