无法在查询中传递十进制值?

时间:2018-05-08 03:01:45

标签: google-sheets google-docs google-sheets-query

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 :(得分:1)

它抱怨.6因为Google电子表格认为您的查询的小数无效:

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。如果发生这种情况,您可能需要一个自定义函数,您可以通过将字符串按句点分割并分别处理每个元素来标记版本号。