从一个select语句中获取多个值,并将这些值单独传递给另一个函数。我们需要表格格式的结果。
选择语句结果
123,abc,45c
并将这些值传递给另一个sql查询,结果应为
clo1 col2(Int) Col3(Int) Col4 (Char)
123 45 98 A
123 58 97 B
123 72 58 C
abc 22 64 A
abc 58 87 B
abc 89 59 C
45c 78 52 A
45c 98 30 B
45c 100 54 C
答案 0 :(得分:0)
你可以简单地在select语句上调用函数,它会将所有结果传递给函数1,比如
SELECT func(123,abc,45c) FROM tableX
以表格格式返回结果,根据输出设计将函数的返回类型设置为表格,如
CREATE OR REPLACE FUNCTION func(a int,b bigint, c int)
RETURNS TABLE(x int, y int) AS $$
BEGIN
-- Your function's internal processing
RETURN QUERY SELECT x, y FROM Tablex WHERE x = a;
END;
$$ LANGUAGE plpgsql;
答案 1 :(得分:0)
使用lateral
可以参考选择结果:
select f.*
from
(
select a, b, c
from t
where x = 1
) s
cross join lateral
my_function(a, b, c) f