SQL 用户定义函数是不是支持 SELECT 子句?
Posted
技术标签:
【中文标题】SQL 用户定义函数是不是支持 SELECT 子句?【英文标题】:Do SQL User-Defined Functions support SELECT clauses?SQL 用户定义函数是否支持 SELECT 子句? 【发布时间】:2017-09-26 20:18:28 【问题描述】:基于 SQL 的 UDF 的文档是 sparse。我想知道是否可以使用查询中的 UDF 参数编写一个完整的 SELECT 子句。所以实际上,每次调用 UDF 都会产生一个子查询。
人为的例子:
CREATE TEMP FUNCTION foo(bar STRING) AS (
SELECT * FROM `example.latest` WHERE thing = bar
);
SELECT foo('abc')
BigQuery 给出错误“语法错误:意外的关键字 SELECT;未能解析 CREATE [TEMP] FUNCTION 语句”,所以我认为这是不可能的,但希望得到确认。
【问题讨论】:
【参考方案1】:一般都支持 SELECT,但不幸的是您不能在 UDF 中引用表!
查看UDF Limitations了解更多
【讨论】:
如果这是你想要的,也可以star the feature request。谢谢!以上是关于SQL 用户定义函数是不是支持 SELECT 子句?的主要内容,如果未能解决你的问题,请参考以下文章
SQL 编译错误:无法评估不受支持的子查询类型 - SELECT 子句中的函数调用
在 WHERE 子句中使用函数编写 SQL SELECT 语句是不是有 Django 等效项?