Как передать массив в строку запроса в Google App Script для электронной таблицы Google - PullRequest
0 голосов
/ 11 октября 2018

У меня есть скрипт, который будет принимать запрос в виде строковой переменной (с именем 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";

Однако мой массивдолжен быть динамическим, так что ручное жесткое кодирование это не вариант.Как передать его как переменную?

1 Ответ

0 голосов
/ 12 октября 2018

вы передаете тип массива в строковом формате, что создаст проблему.вам нужно преобразовать переменные массива в такой форматированный формат строки.

var arrStr=arr.join("','");
"SELECT field1 FROM UNNEST(['"+arrStr+"']) AS field1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...