gpt4 book ai didi

sql - 当用作选择查询的一部分时,是否可以将具有 2 个 OUT 参数的存储函数显示在两列中

转载 作者:行者123 更新时间:2023-11-29 13:55:40 25 4
gpt4 key购买 nike

我的表 (value_table) 有三个整数类型列 value1, value2 & value3 我有一个存储函数 min_and_max(value1 integer, value2 integer, value3整数,输出最小值整数,输出最大值整数)

当我使用 SELECT * FROM min_and_max(1, 2, 3) 时,我得到两列,它们的值分别为 1 和 3。

但是当我使用 SELECT value1, value2, value3, min_and_max(value1, value2, value3) FROM value_table 时,我只得到四列,最后一列有两个值,用逗号分隔,例如, | 1 | 2 | 3 |(1,3)|。我想在五列中显示数据,例如 | 1 | 2 | 3 | 1 | 3 |

这可能吗?

最佳答案

A function with more than 1 OUT parameters returns an anonymous record.如果您在 FROM 子句中使用该记录,就像在您的第一个示例中一样,则会列出该记录的列。如果您在选择列表中使用记录,就像在您的第二个示例中一样,那么您会得到一个列,所有记录值都包含在括号中。

要获得您正在寻找的结果需要 lateral join像这样:

SELECT v.value1, v.value2, v.value3, mm.min_value, mm.max_value
FROM value_table v,
min_and_max(v.value1, v.value2, v.value3) mm;

min_and_max() 函数从它所连接的 value_table 中获取参数,然后在与表中的值相同的行中输出其值。

请注意,对于一个函数,横向连接是隐式可能的,因此您可以省略 LATERAL 关键字。

关于sql - 当用作选择查询的一部分时,是否可以将具有 2 个 OUT 参数的存储函数显示在两列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com