valores nulos não são retornados, a menos que seja especificado - Oracle SQL

0

Ao tentar executar uma instrução select que simplesmente exclui alguns dados, valores nulos também estão sendo excluídos (?).

Usando a tabela a:

ID         NAME
1          Foo
2          Bar
3          (null)

A seguinte declaração:

select * from a where NAME<>'Foo'

está retornando o seguinte:

ID         NAME
2          Bar

Por que o ID 3 não é retornado como resultado dessa declaração? Para incluir o registro com o valor nulo, devo alterar minha instrução select para

select * from a where (NAME<>'Foo' or NAME is null)
    
por root 25.06.2015 / 17:47

1 resposta

1

É assim que o SQL funciona. (NULL <> 'Foo') retorna NULL , o que falha na condicional. Se você quiser incluir essa linha, precisará de OR NAME IS NULL ou precisará considerar o armazenamento de uma string vazia em vez de NULL, se apropriado para seu caso de uso.

O

link tem mais informações sobre valores NULL e operadores booleanos.

    
por 25.06.2015 / 17:59

Tags