--------------C88D5B3462C77CC4E3011D93 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit 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@virtualsw.es > > --------- Pie de mensaje ------------------------------------------- > Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda > Cancelar inscripcion: > mail to: majordomo@tlali.iztacala.unam.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é --------------C88D5B3462C77CC4E3011D93 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <!doctype html public "-//w3c//dtd html 4.0 transitional//en">Eduardo Noeda ha scritto:
Hola:Que tal una funcion escrita en plpgsql ?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@virtualsw.es--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text : cancelacion pgsql-ayudadrop 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é