Share via


Como combinar condições quando OR tem precedência (Visual Database Tools)

Para vincular condições com OR e dar-lhes precedência sobre condições vinculadas com AND, é preciso repetir a condição AND em todas as condições OR.

Por exemplo, suponhamos que você pretenda localizar os funcionários que estão na empresa há mais de cinco anos, que ocupem cargos de nível mais baixo ou que estejam aposentados. Essa consulta requer três condições, uma condição única vinculada a duas condições adicionais com AND:

  • Funcionários com data de contratação anterior a cinco anos e

  • Funcionários com um nível de cargo 100 ou cujo status é "R" (aposentado).

O procedimento a seguir explica como criar esse tipo de consulta no Painel de Critérios.

Para combinar condições quando OR tem precedência

  1. No Painel de Critérios, adicione as colunas de dados a serem pesquisadas. Para pesquisar a mesma coluna usando duas ou mais condições vinculadas com AND, é preciso adicionar o nome da coluna de dados à grade uma vez para cada valor a ser pesquisado.

  2. Crie as condições a serem vinculadas com OR digitando a primeira na coluna de grade Filtro e a segunda (e subseqüentes) em colunas Or separadas. Por exemplo, para vincular condições com OR que pesquisem as colunas job_lvl e status, digite = 100 na coluna Filtro para job_lvl e = 'R' na coluna Or... para status.

    Digitar esses valores na grade produz a cláusula WHERE seguinte na instrução do painel SQL:

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. Crie a condição AND inserindo-a uma vez para cada uma das condições OR. Coloque cada entrada na mesma coluna de grade como sendo a condição OR à qual ela corresponde. Por exemplo, para adicionar uma condição AND que pesquise a coluna hire_date e que se aplique a ambas as condições OR, digite < '1/1/91' na coluna Critérios e na coluna Or....

    Digitar esses valores na grade produz a cláusula WHERE seguinte na instrução do Painel SQL:

    WHERE (job_lvl = 100) AND 
      (hire_date < '01/01/91' ) OR
      (status = 'R') AND 
      (hire_date < '01/01/91' )
    
    DicaDica

    Repita uma condição AND adicionando-a uma vez e usando os comandos Recortar e Colar do menu Editar para repeti-la em outras condições OR.

A cláusula WHERE, criada pelo Designer de Consulta e Exibição, equivale à seguinte cláusula WHERE, que usa parênteses para especificar a precedência de OR sobre AND:

WHERE (job_lvl = 100 OR status = 'R') AND
   (hire_date < '01/01/91')
ObservaçãoObservação

Se você digitar as condições de pesquisa no formato mostrado anteriormente no Painel SQL, mas depois fizer uma alteração na consulta no Painel Diagrama ou Critérios, o Designer de Consulta e Exibição recriará a instrução SQL para que corresponda ao formato em que a condição AND é explicitamente distribuída em ambas as condições OR.