Повторное использование функцииWhere
Предложение WHERE в запросе указывает набор элементов для сопоставления результатов. Последующие запросы могут совместно использовать работу, выполняемую для предыдущего запроса, с помощью функции ReuseWhere в новом предложении WHERE запроса. Запросы, которые используют преимущества этой функции, выполняются быстрее.
Примеры
В следующем сценарии показано, как использовать функцию ReuseWhere:
Вы выдаете следующий запрос:
SELECT System.ItemName FROM SystemIndex WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5'
Из возвращаемого набора строк вы получите Where ID, Query1WhereID.
Идентификатор Where — это свойство набора строк с PROPSET {aa6ee6b0-e828-11d0-b2-3e-00-aa-00-47-fc-01 }, PROPID 8 и type UI4.
Вы выдаете второй запрос с функцией ReuseWhere, передавая Query1WhereID из шага 2:
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:'
Функцию ReuseWhere можно использовать в предложении WHERE.
Связанные разделы
-
Справочник