是否可以将表中的行用作函数中的参数?例如,我有一个简单的函数,可以按金额和数量计算总销售额。
SELECT sales from public.my_function(v_amount, v_qty)
我有一个包含两列的表格:总和和数量
Amount QTY
100 5
200 10
300 20
400 30
500 40
我想添加另一列,其中每行中的参数都会有一个函数结果。我尝试在函数中放置列,但它返回一个错误。在我看来,我的尝试真的是错误的:
SELECT Amount,
QTY
(select sales from public.my_function(select Amount from public.table, select QTY from public.table) as Sales
FROM public.table
结果需要为:
Amount QTY Sales
100 5 500
200 10 2000
300 20 6000
400 30 12000
500 40 20000
有没有办法正确地做到这一点?谢谢
lateral join
如果函数返回一个表,你想使用 a :
SELECT Amount, QTY, x.Sales
FROM public.table t cross join lateral
public.my_function(t.amount, t.qty) x;
如果它只是返回一个标量,那么你不需要做任何特别的事情:
SELECT t.Amount, t.QTY,
public.my_function(t.amount, t.qty) as Sales
FROM public.table t;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句