Database
 sql >> Base de Dados >  >> RDS >> Database

Como filtrar linhas sem NULL em uma coluna

Problema:


Você deseja localizar registros sem um NULL em uma coluna.

Exemplo:


Nosso banco de dados tem uma tabela chamada product com dados em três colunas:id , name , e price .
id nome preço
1 manteiga NULO
2 leite 2,35
3 pão 3,25
4 queijo NULO

Vamos encontrar os nomes e preços dos produtos que têm um preço (sem NULL). Faça isso usando o operador IS NOT NULL.

Solução:

SELECT name, 
  price
FROM product
WHERE price IS NOT NULL;

Segue o resultado da consulta:
nome preço
leite 2,35
pão 3,25

Isso retorna apenas registros sem NULL na coluna, portanto, apenas os nomes e preços do leite e do pão estão presentes. Manteiga e queijo não têm preços (a coluna price é NULL) para que você não os veja.

Discussão:


Para exibir registros sem NULL em uma coluna, use o operador IS NOT NULL. Você só precisa do nome da coluna (ou uma expressão) e o operador IS NOT NULL (no nosso exemplo, o price IS NOT NULL ). Coloque esta condição na cláusula WHERE (no nosso exemplo, WHERE price IS NOT NULL ), que filtra as linhas.

Se a condição for verdadeira, denota que a coluna não armazena um NULL. A linha é retornada se tiver um valor nesta coluna (a coluna não é NULL). De cima, a consulta retorna apenas dois produtos, leite e pão, pois possuem valores em price .