Function PostgreSQL函数,需要获取函数内部的变量
我需要一些关于在postgreSQL中定义函数的帮助: 以下是我的表格定义:Function PostgreSQL函数,需要获取函数内部的变量,function,postgresql,variables,plpgsql,Function,Postgresql,Variables,Plpgsql,我需要一些关于在postgreSQL中定义函数的帮助: 以下是我的表格定义: CREATE TABLE venue ( id INTEGER DEFAULT NEXTVAL('venue_id_seq') , building_code building_code , floorNo int , roomNo int , width int , length int ); 我需要创建一个与该表相关的函数,该函数为我提供了占地面积。以下是我目前所拥有的: CREATE FUNCT
CREATE TABLE venue (
id INTEGER DEFAULT NEXTVAL('venue_id_seq')
, building_code building_code
, floorNo int
, roomNo int
, width int
, length int
);
我需要创建一个与该表相关的函数,该函数为我提供了占地面积。以下是我目前所拥有的:
CREATE FUNCTION floorArea(id int) RETURNS int AS '
SELECT venue.width * venue.length AS result ;
' LANGUAGE SQL;
我不知道如何制作变量等。我想要一些大致如下的东西:
var width= Select width from venue where id=$1;
var length= Select length from venue where id=$1;
return width * length;
我想你可以做类似的事情
CREATE FUNCTION floorArea(idp int)
RETURNS int
as
$$
select width * length from venue as v where v.id = idp
$$ LANGUAGE SQL;
SQL函数中没有变量。你需要使用或来实现这一点 使用plpgsql时,它可以如下所示:
CREATE FUNCTION floor_area(_id int)
RETURNS int AS
$func$
DECLARE
_width int;
_length int;
BEGIN
SELECT INTO _width, _length
width, length
FROM venue
WHERE id = _id;
RETURN width * length;
END
$func$ LANGUAGE plpgsql;
想想我写的
但是像这样的简单任务应该用没有变量的纯SQL来解决。我习惯于在参数名前面加上
,比如\u id
,以避免冲突。它还有助于快速识别代码中的参数名称。此外,我还建议不要使用未加引号的CamelCase标识符,如floorrarea
。这很容易引起混乱。由此产生了一些令人绝望的问题。我在工作中使用SQL Server,PostgreSQL只是为了好玩(尽管我想使用PostgreSQL),所以我们总是使用@before参数。不管怎样,谢谢你的提示