Partilhar via


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

Aplica-se a:SQL Server

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

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

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

  • Empregados com um nível de emprego de 100 ou cujo estatuto é "R" (para reformados).

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

Combinar condições quando OR tem precedência

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

  2. Crie as condições a serem vinculadas OR inserindo a primeira na coluna Grade de filtros e a segunda (e as subsequentes) em colunas separadas ou... Por exemplo, para vincular condições com OR essa pesquisa as job_lvl colunas e status , digite = 100 na coluna Filtro para job_lvl e = 'R' na coluna Ou... para status.

    A inserção desses 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 AND condição inserindo-a uma vez para cada OR condição. Coloque cada entrada na mesma coluna de grelha que corresponde OR à condição a que 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' as colunas Critérios e Ou...

    A inserção desses 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 AND condição adicionando-a uma vez e, em seguida, usando os comandos Recortar e Colar do 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 sobre AND:

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

Observação

Se você inserir as condições de pesquisa no formato mostrado imediatamente acima no Painel 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 condição explicitamente distribuída AND para ambas as OR condições.