SQL函数中参数$1的含义是什么?

6

绝对新手问题。在课程中我们使用PostgreSQL函数,例如:

Original Answer翻译成"最初的回答"

CREATE FUNCTION Raptor_lastSurveyDate1(bigint) RETURNS date As $$
  SELECT max(date) FROM raptor_surveys WHERE nest=$1;
$$ LANGUAGE SQL

或者:

CREATE FUNCTION Raptor_lastSurveyDate2(bigint) RETURNS date As $$
  SELECT date FROM raptor_surveys WHERE nest=$1 ORDER BY date DESC LIMIT 1;
$$ LANGUAGE SQL

这个$1参数是什么意思? 补充:最初的回答。
select * from raptor_surveys delivers this table:

enter image description here


2
参数$1的含义是,指向SQL函数中的第一个参数。 - Mohamed Anees A
3个回答

6

4

3

$1 引用 函数传递的第一个参数,$2 引用第二个参数,以此类推。

在Postgres 9.2之前,SQL函数中使用$1作为参数“名称”早已存在。

在任何现代Postgres版本中,我会重写它来使用命名参数:

CREATE FUNCTION Raptor_lastSurveyDate1(p_some_value bigint) 
  RETURNS date 
As $$
  SELECT max(date) 
  FROM raptor_surveys 
  WHERE nest = p_some_value;
$$ LANGUAGE SQL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接