gpt4 book ai didi

function - Postgresql 将选择查询分配给函数中的变量

转载 作者:行者123 更新时间:2023-11-29 11:36:17 34 4
gpt4 key购买 nike

我正在使用 Postgresql 9.3 并编写了如下函数:

    create or replace function test(building text,floor text) returns void as $$
Declare
id integer;
num integer := 0;
Begin

num=num+100

id :=select to_number(
(select
(select code from buildings where name=building) || floor
|| (select num::text)),'99999999'
);

update table set col1=id;

End;
$$
language plpgsql;

我期望的是我的 id 变量将从 select to_number(...) 中分配一个数字值 example: 12502100询问。

但是我得到了以下错误

ERROR:  syntax error at or near ":="
LINE 10: source :=(select code from buildings where name='I3')

如何将查询结果(通过一些字符串操作)赋值给变量id?

Select Into id... 方法也失败了。

最佳答案

您不需要使用 SELECT 进行函数评估。

id := to_number((SELECT code FROM buildings WHERE name = building) 
|| floor || num::text,
'999999999');

另一种可能性(通常更好)是在表达式列表(结果字段列表)中使用函数

id := (SELECT to_number(code || floor || num::text, '99999999') 
FROM buildings WHERE name = building)

仅在需要查询数据时使用 SELECT,而不是用于函数或变量评估!

关于function - Postgresql 将选择查询分配给函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267048/

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