SELECT sql_function(...) 与 SELECT * FROM sql_function(...)

Héc*_*tor 3 postgresql functions

我第一次阅读 PostgreSQL 文档,当面对 SQL 函数时,我认为我已经理解了所有基础知识,但仍然看不出SELECT sql_function(...)SELECT * FROM sql_function(...)以及何时使用其中一个的区别。

Lau*_*lbe 5

FROM如果函数是集合返回函数(SRF) ,则通常使用它。此类函数返回结果集而不是单个值或元组。

但是,令人困惑的是,这在 PostgreSQL 中并不是一成不变的:

  • 您还可以调用列表中的 SRF SELECT,如 中所示SELECT f()

    正如文档所说:

    返回集合的函数也可以在查询的选择列表中调用。对于查询自身生成的每一行,调用集合返回函数,并为函数结果集的每个元素生成一个输出行。

  • 您可以在子句中使用任何函数FROM。然后将其视为仅返回单行的 SRF。