为给定数组中的每个元素返回新行
SELECT order_id, tagFROM Orders CROSS JOIN UNNEST(tags) AS t (tag)
连接表和 Table Function 的结果,左(外)表中的每一行将会与调用 Table Function 所产生的所有结果中相关行进行 join。用户自定义表函数( User-defined table functions,UDTFs ) 在执行前必须先注册。
若表函数返回了空结果,左表(outer)的行将会被删除。
SELECT order_id, resFROM Orders,LATERAL TABLE(table_func(order_id)) t(res)
若表函数返回了空结果,将会保留相对应的外部行并用空值填充结果。
SELECT order_id, resFROM OrdersLEFT OUTER JOIN LATERAL TABLE(table_func(order_id)) t(res) ON TRUE
参考:https://xie.infoq.cn/article/bf67b2eac8650e57df1ae154c