我需要一些关于在 postgreSQL 中定义函数的帮助:
这是我的表格定义:
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;
最佳答案
SQL 函数中没有变量。您需要使用 PL/pgSQL或 another procedural language为此。
使用 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;
想想我写的关于 parameter names in my other answer 的内容.
但是像这样的简单任务应该使用没有像 @Roman already supplied 这样的变量的普通 SQL 来解决。 .
关于function - PostgreSQL 函数,需要获取函数内部的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18234070/