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