Flink基础(128):FLINK-SQL语法 (22) DQL(14) OPERATIONS(11) Joins(5) 其他

Array Expansion(数组展开)

为给定数组中的每个元素返回新行

 
SELECT order_id, tagFROM Orders CROSS JOIN UNNEST(tags) AS t (tag)
 

Table Function

连接表和 Table Function 的结果,左(外)表中的每一行将会与调用 Table Function 所产生的所有结果中相关行进行 join。用户自定义表函数( User-defined table functions,UDTFs ) 在执行前必须先注册。

INNER JOIN

若表函数返回了空结果,左表(outer)的行将会被删除。

 
SELECT order_id, resFROM Orders,LATERAL TABLE(table_func(order_id)) t(res)
 

LEFT OUTER JOIN

若表函数返回了空结果,将会保留相对应的外部行并用空值填充结果。

 
SELECT order_id, resFROM OrdersLEFT OUTER JOIN LATERAL TABLE(table_func(order_id)) t(res)  ON TRUE

 

参考:https://xie.infoq.cn/article/bf67b2eac8650e57df1ae154c

 

上一篇:Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2) A. A Variety of Operations


下一篇:Flink基础(119):FLINK-SQL语法 (13) DQL(5) OPERATIONS(2) SELECT & WHERE clause/ SELECT DISTINCT(FLINK 1.13