lunes, 3 de junio de 2019
Get Decimal Number in PostgreSQL
-- select * from fnt_get_decimal_number(1500.1257, 'N');
-- select * from fnt_get_decimal_number(1500.120, 'N');
-- select * from fnt_get_decimal_number(1500.120, 'Y');
-- drop function fnt_get_decimal_number(p_number numeric, p_take_zero char)
create or replace function fnt_get_decimal_number(p_number numeric, p_skip_zero char)
returns int
as $$
declare
v_number varchar;
v_decimal varchar;
v_reverse_decimal varchar;
v_resultado int;
begin
v_number = p_number::varchar;
v_decimal = substring(v_number, position('.' in v_number) + 1, length(v_number));
v_reverse_decimal = reverse(v_decimal);
if(p_skip_zero = 'Y')then
if(substring(v_reverse_decimal, 0, length(v_reverse_decimal) - 1) = '0')then
v_resultado = length(v_decimal) - 1;
else
v_resultado = length(v_decimal);
end if;
elseif(p_skip_zero = 'N')then
v_resultado = length(v_decimal);
end if;
if(position('.' in v_number) > 0)then
return v_resultado;
else
return 0;
end if;
end;
$$ language plpgsql;
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario