Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery BigQuery UDF为给定函数参数定义常量字典和匹配_Google Bigquery_User Defined Functions - Fatal编程技术网

Google bigquery BigQuery UDF为给定函数参数定义常量字典和匹配

Google bigquery BigQuery UDF为给定函数参数定义常量字典和匹配,google-bigquery,user-defined-functions,Google Bigquery,User Defined Functions,定义映射的最佳方式是什么:映射(1->“一”,2->“二”)并定义与上述函数匹配的函数?我正在考虑通过Javascript定义一个字典,并在函数体中进行匹配。举个例子就好了。感谢下面的BigQuery标准SQL示例 #standardSQL CREATE TEMP FUNCTION MAP(expr ANY TYPE, map ANY TYPE, `default` ANY TYPE ) AS ( IFNULL(( SELECT result FROM (SELECT NU

定义映射的最佳方式是什么:映射(1->“一”,2->“二”)并定义与上述函数匹配的函数?我正在考虑通过Javascript定义一个字典,并在函数体中进行匹配。举个例子就好了。感谢下面的BigQuery标准SQL示例

#standardSQL
CREATE TEMP FUNCTION MAP(expr ANY TYPE, map ANY TYPE, `default` ANY TYPE ) AS (
  IFNULL((
    SELECT result 
    FROM (SELECT NULL AS search, NULL AS result UNION ALL SELECT * FROM UNNEST(map))
    WHERE search = expr), `default`)
);
WITH `project.dataset.table` AS (
  SELECT 1 id, 4 location_id UNION ALL
  SELECT 2, 2 UNION ALL
  SELECT 3, 5
)
SELECT id, location_id,
  MAP(location_id, 
    [ (1, 'Los Angeles'),
      (2, 'San Francisco'),
      (3, 'New York'),
      (4, 'Seattle')
    ], 'Non US') AS `Location`
FROM `project.dataset.table`   
结果

Row id  location_id Location     
1   1   4           Seattle  
2   2   2           San Francisco    
3   3   5           Non US   

不想大肆宣扬,但为什么不创建一个映射表并使用普通的SQL联接呢?