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


Повторное использование функцииWhere

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

Примеры

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

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

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

    Идентификатор Where — это свойство набора строк с PROPSET {aa6ee6b0-e828-11d0-b2-3e-00-aa-00-47-fc-01 }, PROPID 8 и type 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.

Справочник

предложение WHERE

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