BigQuery: Persistent UDF with optional parameters

Ilj*_*lja 1 optional-parameters user-defined-functions google-bigquery

I'm using the persisten UDF functions, but not sure how to make them using optional parameters, like default value.

For example a simple function replacing NaN:

CREATE OR REPLACE FUNCTION 
`my_project.functions.ifnan`(number ANY TYPE, default_value ANY TYPE) 
AS 
(
if(is_nan(number),default_value,number)
);
Run Code Online (Sandbox Code Playgroud)

How can I make it work like ifnan(value) returning 0 by default and only if other default value specified overwrite the 0?

Something like ifnan(number [,default value])

rme*_*ves 5

查看文档我们可以看到,对于UDFSQLJavaScriptUDF,都没有指定这种结构。

在 SQL 语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  [RETURNS data_type]
  AS (sql_expression)

named_parameter:
  param_name param_type
Run Code Online (Sandbox Code Playgroud)

在 JavaScript 语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  RETURNS data_type
  LANGUAGE js
  [OPTIONS (library = library_array)]
  AS javascript_code 
Run Code Online (Sandbox Code Playgroud)

除此之外,我们还可以找到以下语句:

命名参数。由逗号分隔的 param_name 和 param_type 对组成。param_type 的值是 BigQuery 数据类型。对于 SQL UDF,param_type 的值也可以是 ANY TYPE。

因此,不幸的是,在BigQuery.

如果您需要任何进一步的帮助,请告诉我。