martes, 12 de enero de 2016

isnull postgresql

En mi uso diario de la base de datos postgres, me he encontrado con la necesidad de usar la función isnull que en Sql Server es de muy fácil uso

isnull(variable,'')

O en Oracle sería

nvl(variable,'')

Con está función lo que hace es evaluar si el parametro que le pasamos es igual a null y lo reemplaza por lo que coloquemos en el segundo parámetro de la función.

En postgres no existe algo similar, a no ser que se utilice la sentencia case que quedaría algo como

case when variable is null then '' else variable end

pero bueno.... esto hace que usemos mas caracteres de los necesarios por lo cual reescribí la función isnull para postgres la cual quedó de la siguiente forma

CREATE OR REPLACE FUNCTION isnull(
    variable anyelement,
    retorno anyelement)
  RETURNS anyelement AS
$BODY$
begin
    return case when variable is not null then variable else retorno end;
end
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;


con esto ya conseguimos ejecutar isnull de la misma forma que lo haríamos en Sql Server, que es como está en el primer ejemplo

No hay comentarios.:

Publicar un comentario