查询中的 WHERE 子句指定要匹配结果的一组项。 后续查询可以在新的查询 WHERE 子句中使用 ReuseWhere 函数共享为以前的查询执行的工作。 利用此函数的查询执行速度更快。
例子
以下方案演示如何使用 ReuseWhere 函数:
发出以下查询:
SELECT System.ItemName FROM SystemIndex WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5'
从返回的行集中,你将获得 Where ID,Query1WhereID。
Where ID 是具有 PROPSET {aa6ee6b0-e828-11d0-b2-3e-00-aa-00-47-fc-01 }、PROPID 8 和类型 UI4 的行集属性。
使用 ReuseWhere 函数发出第二个查询,从步骤 2 传入 Query1WhereID:
SELECT System.ItemUrl FROM SystemIndex WHERE ReuseWhere(Query1WhereID) AND SCOPE='file:'
第二个查询等效于以下内容:
SELECT System.ItemUrl, System.ItemName FROM SystemIndex
WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5' AND Scope='file:'
可以在 WHERE 子句中的任意位置使用 ReuseWhere 函数。
相关主题