如何在SQL中执行WHILE LOOP(PostgreSQL/pgAdmin 4)



我正试图在pgAdmin的查询工具中运行这个简单的WHILE循环

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

想要的结果只是一个从1到5的列表,但我的pgAdmin返回了这个错误:*错误:语法错误在"处或附近@"第1行:DECLARE@counter INT=1;

我是一名非信息技术专业的本科生,所以我希望你在解释时考虑到这一点。非常感谢。(代码来源(

您的示例来自SQL Server,而不是PostgreSQL。你应该试试这样的东西:

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

这个答案假设源是postgres语法,而不是sql server,由于问题的标签不正确。

SQL标识符和关键字必须以字母(a-z,但也包括带有变音符号和非拉丁字母的字母(或下划线(_(开头。标识符或关键字中的后续字符可以是字母、下划线、数字(0-9(或美元符号($(。

最新更新