Поделиться через


Функция ReuseWhere

Предложение WHERE в запросе указывает набор элементов для сопоставления результатов. Последующие запросы могут совместно использовать работу, выполненную для предыдущего запроса, с помощью функции ReuseWhere в новом предложении WHERE запроса. Запросы, использующие эту функцию, выполняются быстрее.

Примеры

В следующем сценарии показано, как использовать функцию ReuseWhere:

  1. Вы выполните следующий запрос:

    SELECT System.ItemName FROM SystemIndex 
    WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5'
    
  2. Из возвращенного набора строк вы получите идентификатор Where, Query1WhereID.

    Идентификатор Where — это свойство набора строк с PROPSET {aa6ee6b0-e828-11d0-b2-3e-00-aa-00-47-fc-01 }, PROPID 8 и типом UI4.

  3. Вы выполняете второй запрос с функцией 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 .

Reference

Предложения WHERE

Свойства набора строк