function - PostgreSQL 函数,需要获取函数内部的变量

标签 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 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/pgSQLanother 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/

相关文章:

python - 如何使用函数本身返回的值重复函数?

C:用户输入验证函数

mysql - Rails Multi-Tenancy 架构,限定对多个租户的访问

javascript - JS : Making two functions do the same thing

c++ - 使用模板函数对列表容器进行排序

javascript函数计算两个日期的差异,返回短格式,四舍五入到单个单位

c - 持有空值的变量是否也占用内存中的空间?

php - 如何使用 PHP 构建动态变量?

sql - 从多个表中获取外键的计数

sql - Django JSONField,如何获取存储在列表中的值的出现次数