【发布时间】:2018-10-11 11:51:21
【问题描述】:
我有一个脚本,它将以字符串变量(名为sql)的形式进行查询,并将数据从 BigQuery 提取到 Google 电子表格。
如下所示:
var sql = "SELECT field1, field2 FROM table";
var queryResults;
try {
var queryRequest = BigQuery.newQueryRequest();
queryRequest.setQuery(sql).setTimeoutMs(100000).setUseLegacySql(false);
queryResults = BigQuery.Jobs.query(queryRequest, projectNumber);
}
现在,我想创建一个数组变量并将其传递给sql 查询字符串。当我将数组作为如下变量传递时,它不起作用:Google SpreadSheet 给了我一个错误:
GoogleJsonResponseException:无法识别的名称:becca at [1:1088]
(“becca”是我数组的第一个值)
var array = ['a','b','c']
var sql = "SELECT field1 FROM UNNEST("+array+") AS field1";
它只有在我手动硬编码字符串数组时才有效,如下所示:
var sql = "SELECT field1 FROM UNNEST(['a','b','c']) AS field1";
但是我的数组应该是动态的,所以手动硬编码它不是一个选项。那么如何将它作为变量传递呢?
【问题讨论】:
-
“它不起作用”不是有效的问题描述。为什么不显示从那个和其他尝试中查询字符串的样子,以及相关的代码 sn-ps? stackoverflow.com/help/how-to-ask
-
查看文档中的 Utilities.formatString。
-
@tehhowch 抱歉,当我说“它不起作用”时,这是因为 Google 电子表格给了我一个错误:“GoogleJsonResponseException: Unrecognized name: becca at [1:1088]”(“becca " 是我数组中的第一个值)
-
@I'-'I: 刚试过,还是一样的错误信息:
GoogleJsonResponseException: Unrecognized name: becca at [1:1088] -
@I'-'I : 是的,现在可以了!
标签: google-apps-script google-sheets google-bigquery