Compartilhar via


Combinar condições quando OR tiver precedência (Visual Database Tools)

aplica-se a: do SQL Server

Para vincular condições OR e dar-lhes precedência sobre condições vinculadas AND, você deve repetir a AND condição para cada OR condição.

Por exemplo, imagine que você deseja encontrar todos os funcionários que estão na empresa há mais de cinco anos e têm trabalhos de nível inferior ou estão aposentados. Essa consulta requer três condições, uma única condição vinculada a duas condições adicionais com AND:

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

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

O procedimento a seguir ilustra como criar esse tipo de consulta no painel Critérios.

Combinar condições quando OR tiver precedência

  1. No Painel critérios (Ferramentas de Banco de Dados Visual), adicione as colunas de dados que você deseja pesquisar. Se quiser pesquisar a mesma coluna usando duas ou mais condições vinculadas AND, adicione o nome da coluna de dados à grade uma vez para cada valor que você deseja pesquisar.

  2. Crie as condições a OR serem vinculadas inserindo a primeira na coluna de grade Filtro e a segunda (e as seguintes) em colunas or... separadas. Por exemplo, para vincular condições com OR essa pesquisa job_lvl e status colunas, insira = 100 na coluna Filtrar para job_lvl e = 'R' na coluna Or... para status.

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

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

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

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

    Dica

    Você pode repetir uma condição AND adicionando-a uma vez e, em seguida, usando os comandos Recortar e Colar no menu Editar para repeti-la para outras OR condições.

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

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

Nota

Se você inserir as condições de pesquisa no formato mostrado imediatamente acima no Painel do SQL (Visual Database Tools), mas fizer uma alteração na consulta nos painéis Diagrama ou Critérios, o Designer de Consulta e Exibição recriará a instrução SQL para corresponder ao formulário com a AND condição explicitamente distribuída para ambas as OR condições.