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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.