Home > Back-end >  How to execute WHILE LOOP in SQL (PostgreSQL/pgAdmin 4)?
How to execute WHILE LOOP in SQL (PostgreSQL/pgAdmin 4)?

Time:12-30

I am trying to run this simple WHILE loop in pgAdmin's query tool:

DECLARE @counter INT = 1;

WHILE @counter <= 5
BEGIN
    PRINT @counter;
    SET @counter = @counter   1;
END

The desired result is just a list from 1 to 5, but my pgAdmin is returning this error: *ERROR: syntax error at or near "@" LINE 1: DECLARE @counter INT = 1;

I'm an undergrad in a non-IT course, so I hope you consider this in your explanations. Thank you! (code source)

CodePudding user response:

Your example is from SQL Server, not PostgreSQL. You should try something like this:

do $$
declare 
   counter integer := 0;
begin
   while counter < 5 loop
      raise notice 'Counter %', counter;
      counter := counter   1;
   end loop;
end$$;

CodePudding user response:

This answer assumed the source was postgres syntax, not sql-server, due to the incorrect tag of the question.

SQL identifiers and key words must begin with a letter (a-z, but also letters with diacritical marks and non-Latin letters) or an underscore (_). Subsequent characters in an identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($).

  • Related