DB2 - Banco de dados - Instruções e Funções Básicas - NOT


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

NOT

Você pode excluir dados usando a palavra-chave NOT na cláusula WHERE da consulta.

Exemplos

O exemplo a seguir seleciona todas as divisões que não sejam a EASTERN ou a WESTERN.

Esta consulta:

   SELECT DEPTNUMB
   ,      LOCATION
   ,      DIVISION 
   FROM   Q.ORG
   WHERE  NOT (DIVISION = 'EASTERN' OR DIVISION = 'WESTERN')

Produz este relatório:

   DEPTNUMB  LOCATION       DIVISION
   --------  -------------  ---------
         10  NEW YORK       CORPORATE
         42  CHICAGO        MIDWEST
         51  DALLAS         MIDWEST

Para tornar claro a que se aplica a condição NOT, use parênteses.
Se você usar NOT com AND ou OR e não usar parênteses, as condições que são precedidas por NOT são negadas antes de serem conectadas por AND ou OR.
Por exemplo, se A, B e C forem condições, essas duas frases serão equivalentes:

   NOT A AND B OR C
   ((NOT A) AND B) OR C

Com maior que, menor que ou igual a, NOT deve preceder a condição inteira, como em WHERE NOT YEARS = 10.
Você também pode negar o sinal de igual com o símbolo de negação (¬).

Estas instruções estão corretas:

  • WHERE YEARS ¬ > 10
  • WHERE NOT YEARS = 10

Esta instrução está incorreta:

WHERE YEARS NOT = 10

O símbolo ¬= é um operador substituto para < > (não igual a).
É um operador do ANSI do SQL.
(Se você estiver usando o acesso de dados remoto, o símbolo preferencial é < >.)

Você pode usar NOT NULL, NOT LIKE, NOT IN ou NOT BETWEEN;
somente nesses casos NOT pode acompanhar a primeira parte da condição.

Exemplo:

WHERE YEARS IS NOT NULL

Para selecionar todos cujos salários não estejam entre $17.000 e $21.000, use uma consulta como a seguinte:

   SELECT ID
   ,      NAME
   ,      SALARY
   FROM   Q.STAFF
   WHERE  SALARY NOT BETWEEN 17000 AND 21000

Para selecionar todas as pessoas que não ganham um salário menor do que $18.000 e que também ganhem uma comissão de menos de $500, use uma consulta como a seguinte:

   SELECT ID
   ,      NAME
   ,      SALARY
   ,      COMM
   FROM   Q.STAFF
   WHERE  NOT (SALARY < 18000 AND COMM < 500)

Para selecionar apenas gerentes em Q.STAFF que não são gerentes de departamentos na tabela Q.ORG, use uma consulta como a seguinte:

   SELECT ID
   ,      NAME
   ,      DEPT
   FROM   Q.STAFF
   WHERE  JOB = 'MGR'
   AND    ID NOT IN (SELECT MANAGER FROM Q.ORG)


© Copyright IBM Corp.