Funcao Sql Banco Dados

SQL

PostgreSQL

Delphi

Firebird

03/09/2023

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

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

03/09/2023

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;
GOSTEI 0
POSTAR