- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的表 (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/
我是一名优秀的程序员,十分优秀!