BigQuery:在函数内定义变量

den*_*nim 3 google-bigquery

我试图定义一个简单的标准 SQL 函数,其中输入乘以函数内部定义的常量。

CREATE or REPLACE FUNCTION Test(b FLOAT64) 
RETURNS FLOAT64
AS
DECLARE var FLOAT64 = 0.5;
RETURN (b * var)
;
Run Code Online (Sandbox Code Playgroud)

语法错误是

Syntax error: Expected "(" or string literal but got keyword DECLARE
Run Code Online (Sandbox Code Playgroud)

如何在函数内部定义变量?

Mik*_*ant 6

使用 SQL UDF 的 BigQuery 标准 SQL 的另一个选项

#standardsql
create or replace function test(b float64) 
returns float64 as ((
with variables as (
  select 0.5 as var1, 1.5 as var2
)
select b * var1 + var2
from variables
));    
Run Code Online (Sandbox Code Playgroud)

正如您所看到的 - 您可以variables在一行中使用所有需要的变量来定义 CTE