2

What is wrong with this function. It gives the error "syntax error at return"

create function total (number1 integer, number2 integer, number3 integer) 
returns integer as $$
begin
    return number1 + number2 + number3;
end
$$
language sql

2 Answers 2

2

You need to change language:

create function total (number1 integer, number2 integer, number3 integer) 
returns integer as
$$
begin
    return number1 + number2 + number3;
end;
$$
language plpgsql  --here

DBFiddle Demo

Sign up to request clarification or add additional context in comments.

Comments

1

You are mixing PL/pgSQL syntax with SQL syntax. A SQL function does not have a return part, use select instead and remove the begin ... end block:

create function total (number1 integer, number2 integer, number3 integer) 
  returns integer 
as 
$$
    select number1 + number2 + number3;
$$
language sql;

For simple expressions like that a SQL function is more efficient than a PL/pgSQL function.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.