如何在PostgreSQL中遍历表ID并调用带参数的自定义函数
PostgreSQL遍历ID调用函数的解决方案
你可以通过以下几种方式实现遍历mytable中的id并传入my_function:
方法1:隐式横向连接(内连接)
这种方式会返回所有函数调用有结果的行,语法简洁:
SELECT mf.* FROM mytable t, my_function(t.id, 'myemail@gmail.com') mf;
方法2:显式横向连接(内连接)
如果需要更清晰的语法结构,推荐使用显式的CROSS JOIN LATERAL:
SELECT mf.* FROM mytable t CROSS JOIN LATERAL my_function(t.id, 'myemail@gmail.com') mf;
方法3:保留所有ID的左横向连接
如果希望保留mytable中的所有id,即使函数调用没有返回结果,可以使用LEFT JOIN LATERAL:
SELECT t.id, mf.* FROM mytable t LEFT JOIN LATERAL my_function(t.id, 'myemail@gmail.com') mf ON true;
说明:横向连接(LATERAL)允许在FROM子句中引用前面表的列,正好满足将每行的id作为参数传入函数的需求。
内容的提问来源于stack exchange,提问作者gwydion93
相关产品推荐
相关产品推荐

