Saltar navegação

S03.e - PARÊNTESES

Conceitos

Quando o DB2 interpreta condições compostas, segue uma ordem específica. Em primeiro lugar ele avalia os operadores NOT que precedem os predicados individuais. Em seguida ele avalia os predicados que estão conectados por ANDs. Por fim avalia os predicados que estão conectados por ORs. Se necessário modificar esta ordem pode-se utilizar parênteses para alterar a sequencia de avaliações.

Exemplos

Condiçao composta sem parênteses para recuperar clientes de New Jersey ou New York cujos sobrenomes iniciem com GR.

SELECT  FNAME, LNAME, CITY, STATE, ZIPCODE
  FROM PW0001.CUSTOMER 
  WHERE STATE = 'NJ'
  OR CITY LIKE 'NEW YORK%'
  AND LNAME LIKE 'GR%'

Este exemplo recupera todos os clientes de NJ independente do nome por que o DB2 processa o AND antes do OR.

Mesma condição composta com parênteses.

SELECT  FNAME, LNAME, CITY, STATE, ZIPCODE
  FROM PW0001.CUSTOMER 
  WHERE (STATE = 'NJ' OR CITY LIKE 'NEW YORK%')
  AND LNAME LIKE 'GR%'

O DB2 resolve em primeiro lugar as condições entre parênteses e depois as condições externas aos parênteses.

Condição composta com operador NOT negando o primeiro predicado.

SELECT  EMPNO, HIREDATE, SALARY
  FROM PW0001.EMPLOYEE 
  WHERE NOT (SALARY >= 5000) AND (HIREDATE > '2008-01-01')

Condição composta com operador NOT negando os dois predicado.

SELECT  EMPNO, HIREDATE, SALARY
  FROM PW0001.EMPLOYEE 
  WHERE NOT (SALARY >= 5000 AND HIREDATE > '2008-01-01')

Condição composta reescrita para eliminar o operador NOT.

SELECT  EMPNO, HIREDATE, SALARY
  FROM PW0001.EMPLOYEE 
  WHERE NOT (SALARY >= 5000) AND (HIREDATE > '2008-01-01')


Quando se utiliza parênteses as condições dos parênteses mais internos são avaliadas primeiro, seguidas das condições mais externas.

Utiliza-se parênteses para clarificar as avaliações de condições compostas.

Em geral evita-se o uso de NOT para tornar o entendimento mais fácil.

 

 

 

 

Licença: licença proprietária