如何调用接受表类型参数并返回表的函数?

埃里克

假设我有一个返回表的函数,该表显示一个人的名字中有多少个字母:

CREATE TABLE people (name varchar);

INSERT INTO people VALUES ('jill');
INSERT INTO people VALUES ('jimmy');

CREATE OR REPLACE FUNCTION letter_count(person people) RETURNS TABLE(letter varchar, count bigint) AS $$
  SELECT letter, COUNT(*) count FROM regexp_split_to_table(person.name, '') letter GROUP BY letter
$$ LANGUAGE sql STABLE;

我只想对name =的人调用该函数jill,并且希望得到这样的结果,该结果是通过在函数(SELECT letter, COUNT(*) count FROM regexp_split_to_table('jill', '') letter GROUP BY letter;)中手动调用查询来返回的

| letter | count |
| ------ | ----- |
| j      | 1     |
| i      | 1     |
| l      | 2     |

如果我尝试以下查询:

SELECT letter_count(people.*) FROM people WHERE people.name='jill';

我得到这个结果:

| letter_count |
| ------------ |
| (i,1)        |
| (l,2)        |
| (j,1)        |

我尝试了许多其他查询(SELECT * FROM letter_count((SELECT * FROM people WHERE name='jill'));似乎很有希望),但是没有运气。

这是一个数据库小提琴,可重现我所看到的内容:https : //www.db-fiddle.com/f/nBqwyGknRHJeWL5sdoFhhJ/0

劳伦兹·阿尔伯

您可以将这样的表函数放在FROM类似于表子句中。

通常,横向连接是执行此操作的最佳方法:

SELECT l.*
FROM people
   CROSS JOIN LATERAL letter_count(people) AS l
WHERE people.name = 'jill';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用嵌套表类型的参数调用 Oracle 过程

来自分类Dev

TypeScript推断接受函数作为参数的函数的返回类型

来自分类Dev

如何合并select中调用的函数返回的表?

来自分类Dev

PL/SQL 如何从返回类型表的函数中获取结果

来自分类Dev

模板参数类的函数调用的返回类型

来自分类Dev

接受lambda作为函数参数并提取返回类型

来自分类Dev

接受lambda作为函数参数并提取返回类型

来自分类Dev

LuaPlus:如何使函数返回表?

来自分类Dev

表在调用函数时返回nil值

来自分类Dev

从PostgreSQL中的函数返回表类型

来自分类Dev

从PostgreSQL中的函数返回表类型

来自分类Dev

如果函数返回类型为void,如何调用可变参数包中的所有函数?

来自分类Dev

如果函数返回类型为void,应如何调用可变参数包中的所有函数?

来自分类Dev

从表为参数的函数中返回表计数

来自分类Dev

接受参数并返回+1的函数

来自分类Dev

允许函数指针类型的模板参数接受任何返回类型的函数

来自分类Dev

如何使Rust函数接受任何浮动类型作为参数

来自分类Dev

如何返回与调用函数相同的类型?

来自分类Dev

如果我们知道参数并返回类型,如何使用其指针调用任何类函数?

来自分类Dev

C#在SQL Server中调用用户定义的标量函数,该函数将表类型作为其参数

来自分类Dev

使用JTDS调用存储过程时如何设置空表类型参数

来自分类Dev

如何在T-SQL中编写一个函数,该函数接受表作为输入并将结果返回为表?

来自分类Dev

无类型函数调用可能不接受类型参数

来自分类Dev

函数接受函数作为模板类型的参数

来自分类Dev

如何从@IBAction内部调用表视图函数

来自分类Dev

如何从Spring JDBC调用表值函数

来自分类Dev

如何在postgresql中编写返回表的非参数化函数

来自分类Dev

如何做一个函数从pl / sql中的表返回行类型?

来自分类Dev

如何从函数(UDF)返回表变量?

Related 相关文章

  1. 1

    如何使用嵌套表类型的参数调用 Oracle 过程

  2. 2

    TypeScript推断接受函数作为参数的函数的返回类型

  3. 3

    如何合并select中调用的函数返回的表?

  4. 4

    PL/SQL 如何从返回类型表的函数中获取结果

  5. 5

    模板参数类的函数调用的返回类型

  6. 6

    接受lambda作为函数参数并提取返回类型

  7. 7

    接受lambda作为函数参数并提取返回类型

  8. 8

    LuaPlus:如何使函数返回表?

  9. 9

    表在调用函数时返回nil值

  10. 10

    从PostgreSQL中的函数返回表类型

  11. 11

    从PostgreSQL中的函数返回表类型

  12. 12

    如果函数返回类型为void,如何调用可变参数包中的所有函数?

  13. 13

    如果函数返回类型为void,应如何调用可变参数包中的所有函数?

  14. 14

    从表为参数的函数中返回表计数

  15. 15

    接受参数并返回+1的函数

  16. 16

    允许函数指针类型的模板参数接受任何返回类型的函数

  17. 17

    如何使Rust函数接受任何浮动类型作为参数

  18. 18

    如何返回与调用函数相同的类型?

  19. 19

    如果我们知道参数并返回类型,如何使用其指针调用任何类函数?

  20. 20

    C#在SQL Server中调用用户定义的标量函数,该函数将表类型作为其参数

  21. 21

    使用JTDS调用存储过程时如何设置空表类型参数

  22. 22

    如何在T-SQL中编写一个函数,该函数接受表作为输入并将结果返回为表?

  23. 23

    无类型函数调用可能不接受类型参数

  24. 24

    函数接受函数作为模板类型的参数

  25. 25

    如何从@IBAction内部调用表视图函数

  26. 26

    如何从Spring JDBC调用表值函数

  27. 27

    如何在postgresql中编写返回表的非参数化函数

  28. 28

    如何做一个函数从pl / sql中的表返回行类型?

  29. 29

    如何从函数(UDF)返回表变量?

热门标签

归档