如何在bigquery中将此标准sql转换为旧版sql代码?

时间:2018-08-16 08:16:11

标签: sql google-bigquery

CREATE TEMPORARY FUNCTION
  s2id(lit FLOAT64,
    low FLOAT64,
    level FLOAT64)
  RETURNS STRING
  LANGUAGE js AS """
return litLowToId(lit,low,level);
"""
OPTIONS
  (library="test.js");

大查询突出显示了lit部分,却没有告诉我原因。它只是说encountered "" in line 2。这是怎么回事?

1 个答案:

答案 0 :(得分:1)

  

大型查询突出显示了点亮的部分,而没有告诉我原因。它只是在第2行中说遇到了“”。这是怎么回事?

您在UI中遇到上述错误的原因是因为您使用的是旧版SQL
切换到标准SQL(在[经典UI]中取消选中“选项面板”中的Use Legacy SQL复选框,或在[新UI]中选中Standard SQL方言单选框) 另外,您也可以将下面的代码添加到整个代码的最顶部(作为第一行)
有关更多详细信息,请参见Enabling Standard SQL

#standardSQL    

此外,您还必须提供有效路径-类似于

library="gs://my-bucket/path/to/test.js"    

最后,您需要在函数下方进行实际查询

  

如何在bigquery中将该标准sql转换为旧版sql代码?

我强烈建议您继续使用BigQuery Standard SQL
如果您被现有的旧版sql代码锁定-您可能希望将sql查询从旧版迁移到标准

在任何情况下,BigQuery旧版和标准方言的UDF都大不相同-请参见Differences in user-defined JavaScript functions