Google bigquery BigQuery:在函数中定义变量

Google bigquery BigQuery:在函数中定义变量,google-bigquery,Google Bigquery,我试图定义一个简单的标准SQL函数,其中输入乘以函数中定义的常量 CREATE or REPLACE FUNCTION Test(b FLOAT64) RETURNS FLOAT64 AS DECLARE var FLOAT64 = 0.5; RETURN (b * var) ; 语法错误是 Syntax error: Expected "(" or string literal but got keyword DECLARE 如何在函数中定义变量?BigQuery中的

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

CREATE or REPLACE FUNCTION Test(b FLOAT64) 
RETURNS FLOAT64
AS
DECLARE var FLOAT64 = 0.5;
RETURN (b * var)
;
语法错误是

Syntax error: Expected "(" or string literal but got keyword DECLARE

如何在函数中定义变量?

BigQuery中的SQL函数不支持变量。其中一个选项是在代码开头声明和设置变量。然后将其作为参数传递给函数

CREATE or REPLACE FUNCTION Test(b FLOAT64) 
RETURNS FLOAT64
AS
DECLARE var FLOAT64 = 0.5;
RETURN (b * var)
;
另一种选择是使用J:


BigQuery中的SQL函数不支持变量。其中一个选项是在代码开头声明和设置变量。然后将其作为参数传递给函数

CREATE or REPLACE FUNCTION Test(b FLOAT64) 
RETURNS FLOAT64
AS
DECLARE var FLOAT64 = 0.5;
RETURN (b * var)
;
另一种选择是使用J:


使用SQLUDF的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
));    

如您所见-您可以使用一行中的所有所需变量定义变量CTE

使用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
));    
如您所见,您可以在一行中定义所有需要的变量CTE