在BigQuery标准SQL中,视图是一个已保存的查询,因此不能在视图中直接使用不保存的用户定义函数(UDF)。但是,你可以通过将函数的逻辑放在一个内联查询中来解决这个问题。
以下是一个示例,展示了如何在视图中使用不保存的UDF的解决方法:
-- 创建一个不保存的UDF
CREATE TEMPORARY FUNCTION MyUDF(x INT64) AS (x * x);
-- 创建一个视图,并在内联查询中使用UDF
CREATE VIEW MyView AS
SELECT
column1,
column2,
MyUDF(column3) AS transformed_column
FROM
(
-- 在内联查询中使用UDF
SELECT
column1,
column2,
column3
FROM
my_table
);
在上面的示例中,我们首先创建了一个不保存的UDF MyUDF
。然后,我们创建了一个视图 MyView
,并在内联查询中使用了UDF。内联查询的结果会作为视图的结果返回。
请注意,内联查询中的UDF只在视图中有效,不能在其他查询中直接调用。如果需要在多个查询中使用相同的函数逻辑,建议将函数保存为一个正式的UDF。