如何定义返回多种数据类型之一的函数?
How to define a function returning one of multiple data types?
我有一个带有条件结果的函数。根据参数值,它应该 return varchar
或 int
或 uuid
或 timestamp
.
该函数的 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
我有一个带有条件结果的函数。根据参数值,它应该 return varchar
或 int
或 uuid
或 timestamp
.
该函数的 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