Partilhar via


NULO e DESCONHECIDO (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

NULL indica que o valor é desconhecido. Um valor nulo é diferente de um valor vazio ou zero. Não há dois valores nulos iguais. Comparações entre dois valores nulos, ou entre um valor nulo e qualquer outro valor, retornam desconhecidos porque o valor de cada NULL um é desconhecido.

Os valores nulos geralmente indicam dados desconhecidos, não aplicáveis ou a serem adicionados posteriormente. Por exemplo, a inicial intermediária de um cliente pode não ser conhecida no momento em que o cliente faz um pedido.

Consider:

  • Para testar valores nulos em uma consulta, use IS NULL ou IS NOT NULL na WHERE cláusula.

  • Você pode inserir valores nulos em uma coluna declarando NULL explicitamente em uma INSERT instrução ou UPDATE deixando uma coluna fora de uma INSERT instrução.

  • Os valores nulos não podem ser usados como informações necessárias para distinguir uma linha em uma tabela de outra linha em uma tabela. Os exemplos incluem chaves primárias ou para informações usadas para distribuir linhas, como chaves de distribuição.

Remarks

Quando valores nulos estão presentes nos dados, os operadores lógicos e de comparação podem potencialmente retornar um terceiro resultado de em vez de UNKNOWN apenas TRUE ou FALSE. Essa necessidade de lógica de três valores é uma fonte de muitos erros de aplicativo. Operadores lógicos em uma expressão booleana que inclui UNKNOWN retorno UNKNOWN, a menos que o resultado do operador não dependa da UNKNOWN expressão. Estas tabelas fornecem exemplos desse comportamento.

A tabela a seguir mostra os resultados da aplicação de um AND operador a duas expressões booleanas onde uma expressão retorna UNKNOWN.

Expressão 1 Expressão 2 Result
TRUE UNKNOWN UNKNOWN
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN FALSE

A tabela a seguir mostra os resultados da aplicação de um OR operador a duas expressões booleanas onde uma expressão retorna UNKNOWN.

Expressão 1 Expressão 2 Result
TRUE UNKNOWN TRUE
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN UNKNOWN