Funcao Sql Banco Dados

03/09/2023

0

Olá Galera!

Como faço para criar uma função função nos PostgreSQL onde tenha uma entrada com um número e informe se ele é divisível por 10, por 5, por 2 ou se não é divisível por nenhum destes.

Tenho esse de exemplo, mais não roda o código:
CREATE OR REPLACE FUNCTION divisao(num INTEGER)
RETURNS VARCHAR AS $$

DECLARE
resultado VARCHAR;
BEGIN
IF num % 10 = 0 THEN
resultado := 'Divisível por 10';
ELSIF num % 5 = 0 THEN
resultado := 'Divisível por 5';
ELSIF num % 2 = 0 THEN
resultado := 'Divisível por 2';
ELSE
resultado := 'Não é divisível por 10, 5 ou 2';
END IF;

RETURN resultado;
END;
$$ LANGUAGE plpgsql;
Jefferson

Jefferson

Responder

Posts

04/09/2023

Arthur Heinrich

Eu não conheço a sintaxe do pgSQL, mas parece que seu código está correto, com exceção à declaração do tipo VARCHAR, que geralmente precisa especificar um tamanho máximo. Pode não ser necessário no tipo de retorno da function, mas provavelmente é na declaração da sua variável.

CREATE OR REPLACE FUNCTION divisao(i integer) RETURNS varchar(50) AS $$
BEGIN
  IF ((num % 2) = 0) THEN
    IF ((num % 5) = 0) THEN
      RETURN 'Divisível por 10';
    ELSE
      RETURN 'Divisível por 2';
    END IF;
  ELSE
    IF ((num % 5) = 0) THEN
      RETURN 'Divisível por 5';
    ELSE
      RETURN 'Não é divisível por 10, 5 ou 2';
    END IF;
  END IF;
END;
$$ LANGUAGE plpgsql;
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar