Em certos momentos podemos precisar testar se uma coluna é null, como podemos fazer isso?
Vamos criar uma tabela de exemplo:

SQL:

CREATE TABLE testenulls (ID INT);
INSERT INTO testenulls VALUES (1);
INSERT INTO testenulls VALUES (2);
INSERT INTO testenulls VALUES (NULL);

Resposta:

As pessoas que são novas no uso do sql, geralmente cometem o mesmo equivoco, elas tentam fazer:

SQL:

SELECT * FROM testenulls WHERE ID = NULL

Entretanto isso não funcionará, porém existe um jeito de funcionar dessa forma, basta fazer:

SQL:

SET ANSI_NULLS OFF

Isso não é muito recomendado, pois já está em desuso, o certo a fazer é

SQL:

SELECT * FROM testenulls WHERE ID IS NULL

Ainda podemos usar o COALESCE, que substitui null por um valor escolhido, porém nesse caso teremos que escolher um valor que não exista na tabela, caso contrário não iremos obter a resposta correta.

SQL:

SELECT * FROM testenulls
WHERE COALESCE(ID,-66666) = -66666

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

1 trackback

Trackback de: unBuggers [Visitante]
Testar se o dado que veio do banco é nulo (DBNull) em C#
Existem 3 jeitos para se fazer essa comparação:

Eu usei de um operador ternário, esse operador funciona assim:
(comparacao) ? (se verdadeiro) : (se falso)

// com value
texto = dataReader["coluna"] == DBNull.Value ? null : dataReader["coluna"].t...
20.10.08 @ 05:59

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))