Невозможно передать десятичное значение в запросе? - PullRequest
0 голосов
/ 08 мая 2018

Heyo! У меня есть электронная таблица для всех серверов, на которых у меня есть сайты и номера их версий. Я хочу, чтобы другой лист вытащил сайты с определенным номером версии, чтобы я знал, какие сайты нужно обновить. При этом я получаю следующую ошибку.

Unable to parse query string for Function QUERY parameter 2: PARSE_ERROR: Encountered " <DECIMAL_LITERAL> ".6 "" at line 1, column 50. Was expecting one of: "and" ... "or" ... ")" ...

Вот мой запрос:

=query({'Heyo1 - CLOUD'!A:G;Heyo2!A:G;Heyo3!A:G;Heyo4!A:G;'Heyo4 - VPS'!A:G;'Heyo5 - VPS'!A:G}, "Select * Where (Col2 = 'Wordpress' and Col4 < 3.9.6 or Col2 = 'Joomla' and Col4 < 3.8.7 ) order by Col2 DESC ")

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 08 мая 2018

Он жалуется на .6, потому что Google Spreadsheet считает, что ваш запрос имеет недопустимый десятичный знак:

Col4 < 3.9.6

А также

Col4 < 3.8.7

Но так как это номера версий, вам нужно сравнить их как строки (см. Предостережение ниже).

Основываясь на ваших комментариях, вы, вероятно, можете сказать следующее:

=query({'Heyo1 - CLOUD'!A:G;Heyo2!A:G;Heyo3!A:G;Heyo4!A:G;'Heyo4 - VPS'!A:G;'Heyo5 - VPS'!A:G}, "Select * Where (Col2 = 'Wordpress' and Col4 < '3.9.6' or Col2 = 'Joomla' and Col4 < '3.8.7' ) order by Col2 DESC ")

Имейте в виду, что если по какой-либо причине в результате вы получите номер версии, например 3.20.0, то при сравнении строк он будет считаться меньше 3.3.0. Если это произойдет, вам, вероятно, понадобится пользовательская функция, в которой вы токенизируете номера версий, разбивая строку по периоду и обрабатывая каждый элемент отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...