Compartilhar via


Função ReuseWhere

A cláusula WHERE em uma consulta especifica um conjunto de itens com os quais corresponder os resultados. As consultas subsequentes podem compartilhar o trabalho executado para uma consulta anterior usando a função ReuseWhere em uma nova cláusula WHERE de consulta. As consultas que aproveitam essa função são executadas mais rapidamente.

Exemplos

O cenário a seguir mostra como usar a função ReuseWhere:

  1. Você emite a seguinte consulta:

    SELECT System.ItemName FROM SystemIndex 
    WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5'
    
  2. No conjunto de linhas retornado, você obtém uma ID Where, Query1WhereID.

    A ID where é uma propriedade de conjunto de linhas com PROPSET {aa6ee6b0-e828-11d0-b2-3e-00-aa-00-47-fc-01 }, PROPID 8 e digite UI4.

  3. Você emite uma segunda consulta com a função ReuseWhere, passando o Query1WhereID da etapa 2:

    SELECT System.ItemUrl FROM SystemIndex 
    WHERE ReuseWhere(Query1WhereID) AND SCOPE='file:'
    

A segunda consulta é equivalente ao seguinte:

SELECT System.ItemUrl, System.ItemName FROM SystemIndex 
WHERE CONTAINS(*, 'pencil') AND System.ItemDate > '2007-3-5' AND Scope='file:'

A função ReuseWhere pode ser usada em um local na cláusula WHERE .

Referência

Cláusula WHERE

Propriedades do conjunto de linhas