Google sheets Google查询中的精确结果,如果精确结果不存在,则后跟部分匹配
我正在使用Google Query搜索Google电子表格: 示例数据:Google sheets Google查询中的精确结果,如果精确结果不存在,则后跟部分匹配,google-sheets,google-query-language,Google Sheets,Google Query Language,我正在使用Google Query搜索Google电子表格: 示例数据: Block Hill Road Greenhill Road Hill Road Brownhill Road 查询示例: 'SELECT A WHERE LOWER(A) LIKE "%'+searchInput+'%" ORDER BY A ASC' 如果有人搜索“Hill”,它将返回所有行 但是,如果有人搜索“Hill Road”,它仍然会返回最后列出的“Hill Road”的所有行 理想情况下,我希望它要么只返
Block Hill Road
Greenhill Road
Hill Road
Brownhill Road
查询示例:
'SELECT A WHERE LOWER(A) LIKE "%'+searchInput+'%" ORDER BY A ASC'
如果有人搜索“Hill”,它将返回所有行
但是,如果有人搜索“Hill Road”,它仍然会返回最后列出的“Hill Road”的所有行
理想情况下,我希望它要么只返回精确匹配的“Hill Road”,要么至少将“Hill Road”作为第一个响应
是否有一种方法来构造查询,以便只显示或首先显示精确匹配
或者我必须编写一个回退脚本,首先查询精确匹配,如果没有返回,则查询部分匹配?也许是朝着正确方向迈出的一步:
={query(A:A,"select * where LOWER(A) LIKE 'hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")}
下命令:
Hill Road
Hill Road
Greenhill Road
Brownhill Road
Block Hill Road
(精确匹配被复制),或者可能为列a中的所有条目添加空格并应用:
={query(A:A,"select * where LOWER(A) LIKE '% hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")}
给予:
Hill Road
Block Hill Road
Hill Road
Greenhill Road
Brownhill Road
Block Hill Road
如果您不希望复制“精确”和“相似”,请使用UNIQUE包装:
(a) 不添加空格:
=unique({query(A:A,"select * where LOWER(A) LIKE '% hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")})
=unique({query(A:A,"select * where LOWER(A) LIKE '% hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")})
输出:
Hill Road
Greenhill Road
Brownhill Road
Block Hill Road
(b) 添加了空格:
=unique({query(A:A,"select * where LOWER(A) LIKE '% hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")})
=unique({query(A:A,"select * where LOWER(A) LIKE '% hill road%' ORDER BY A desc");query(A:A,"select * where LOWER(A) LIKE '%hill road%' ORDER BY A desc")})
输出:
Hill Road
Block Hill Road
Greenhill Road
Brownhill Road
如果选择唯一订单
asc
可能更有意义。谢谢。你能告诉我用UNIQUE包装的语法吗?不幸的是,我得到了一个“无效查询”响应:通过发送这个查询=UNIQUE({query(A:A,“按ASC限制10选择一个WHERE LOWER(A)如'hill road%'顺序”);query(A:A,“按ASC限制10选择一个WHERE LOWER(A)如'%hill road%'顺序”))
-在电子表格中工作正常的选项: