gpt4 book ai didi

sql - PostgreSQL IF-THEN-ELSE 控制结构

转载 作者:行者123 更新时间:2023-11-29 11:15:20 24 4
gpt4 key购买 nike

为什么我总是从 Postgres 收到以下错误?

“IF”处或附近的语法错误

我读了PostgreSQL: Documentation: 8.3: Control Structures .首先我尝试执行一个困难的查询(使用子查询),但后来我尝试执行一个像这样的简单查询:

IF 2 <> 0 THEN select * from users; END IF;

错误还是一样。我做错了什么?

最佳答案

IF 2 <> 0 THEN select * from users; END IF;

你不能在 plpgsql 函数之外使用 PL/pgSQL 语句。如果这个片段来自 plpgsql 函数,那也是无稽之谈。您不能像 T-SQL 那样直接返回查询结果。

CREATE OR REPLACE FUNCTION test(p int)
RETURNS SETOF users AS $$
BEGIN
IF p = 1 THEN
RETURN QUERY SELECT * FROM users;
END IF;
RETURN;
END;
$$ LANGUAGE plpgsql;

当你从函数中得到一些结果时,你必须使用 RETURN 语句 - plpgsql 只知道函数,它不支持过程 - 所以无限的 SELECT 没有意义。

关于sql - PostgreSQL IF-THEN-ELSE 控制结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com