Table Value Function

描述

TVF是Table Value Function的缩写。

TVF在TuringSQL中用来表示一类可以对整张表进行操作的函数集合。其的输入由一个或者若干个标量参数和一个SQL(可以理解为一张表)组成;与之对应的输出是一张表。

语法格式

SELECT:
  SELECT [ DISTINCT ]
    { * | projectItem [, projectItem ]* }
  FROM Table({TVF})
    [ WHERE booleanExpression ]
    [ GROUP BY { groupItem [, groupItem ]* } ]
    [ ORDER BY { orderByItem [, OrderByItem ]* }]
    [ HAVING booleanExpression ]
    [ LIMIT number]
    [ OFFSET number]

TVF:
	{TVF Name}({scalar parameter}*, {SELECT})

示例

简单的TVF使用

SELECT
    *
FROM
    TABLE (
        one_part_tvf(
            'rtp_url',
            123,
            (
                SELECT i1, i2, d3, d4 FROM t1
            )
        )
    )

但允许下面的方式:

SELECT
    *
FROM
    TABLE (
        one_part_tvf_enable_shuffle(
            'rtp_url',
            123,
            (
                SELECT
                    i1, i2
                FROM
                    TABLE (
                        one_part_tvf_enable_shuffle(
                            'rtp_url_2',
                            234,
                            (
                                SELECT i1, i2, d3, d4 FROM t1
                            )
                        )
                    )
            )
        )
    )

内置TVF

可参考TVF使用介绍