Funcao Sql Banco Dados
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;
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
Curtidas 0
Respostas
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