gpt4 book ai didi

sql - Postgres 嵌套 if in case 查询

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

你能告诉我为什么以下在 postgres sql 中不起作用吗?:

See updated code below

更新:

我希望查询返回 float “0.30”。此构造仅用于测试目的,我有一些依赖于此条件结构的复杂查询...但我不知道如何修复它..

结果是:

ERROR:  syntax error at or near "1"
LINE 4: if 1=1 then

更新:

这个结构出现在一个函数中...所以我想做以下事情:

CREATE FUNCTION f_test(myvalue integer) RETURNS float AS $$
BEGIN
select (
case (select '1')
when '1' then
if 1=1 then
0.30::float
else
0.50::float
end
else
1.00::float
end
);
END;
$$ LANGUAGE plpgsql;

select f_test(1) as test;

错误信息见上。

最佳答案

在 Postgres 中没有用于普通 SQL 查询的 IF expr THEN result ELSE result END 语法。由于 MySQL 中没有 IF() 函数,因此您必须使用 CASE:

select (
case (select '1')
when '1' then
case when 1=1 then 0.30::float else 0.50::float end
else
1.00::float
end
);

关于sql - Postgres 嵌套 if in case 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198238/

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