首页 > 解决方案 > Google Big Query 中的功能

问题描述

我正在尝试在 google biq 查询中创建一个函数,但我收到以下错误。任何帮助表示赞赏:

CREATE FUNCTION `test.xx.x_to_y_Id`(ID INT64)
RETURNS INT64

    SELECT CASE 
  WHEN CAST(FLOOR(ID/POWER(CAST(2 AS INT64),38)) AS INT64) & 3 = 0
    THEN ID & CAST(12345678 AS INT64)
    ELSE ID END

Syntax error: Expected "(" or string literal but got keyword SELECT at [4:9]

标签: google-bigquery

解决方案


您可以将其用作 CREATE 函数语句

CREATE TEMP FUNCTION
  test(ID FLOAT64) 
AS ( 
CASE 
WHEN CAST(FLOOR(ID/POWER(CAST(2 AS INT64),38)) AS INT64) & 3 = 0
  THEN ID & CAST(12345678 AS INT64)
ELSE ID END);

注意:我SELECT从函数主体中删除了 并更正了函数签名以匹配此处定义的 BigQuery 函数样式


推荐阅读