如何定义返回多种数据类型之一的函数?

How to define a function returning one of multiple data types?

我有一个带有条件结果的函数。根据参数值,它应该 return varcharintuuidtimestamp.

该函数的 return 类型应该是什么?

SQL 是严格键入的。简单的解决办法就是return一个text字段。每个值都可以转换为 text。 (您可以添加第二个 return 列,其中包含类型名称作为元信息。)

或者,return 四个类型的字段 (varchar, int, uuid, timestamp),并且只填写其中一个,具体取决于结果。

只有当您可以在调用时告诉 return 类型并相应地传递键入的输入时,polymorphic 函数才是一个选项。

相关:

  • Refactor a PL/pgSQL function to return the output of various SELECT queries