为什么在UDF的LIMIT语句中不能使用参数?

时间:2019-06-27 15:42:55

标签: google-bigquery

为什么以下代码不起作用?

CREATE TEMP FUNCTION udf(max INT64) AS (
  ARRAY(SELECT * FROM UNNEST(["foo","bar"]) LIMIT max)
);
SELECT udf(2)

1 个答案:

答案 0 :(得分:1)

LIMIT需要使用文字整数

要针对上述查询解决此问题,您可以使用以下解决方法

#standardSQL
CREATE TEMP FUNCTION udf(max INT64) AS (
  ARRAY(SELECT item FROM UNNEST(["foo","bar","bar2","bar3"]) item WITH OFFSET WHERE OFFSET < max)
);
SELECT udf(2)