Como comparar valores nulos a partir da coluna de base de dados [duplicado]

esta pergunta já tem uma resposta aqui:

tenho registo na minha tabela onde a coluna do nome tem valor nulo.. e eu quero atualizar esse registro usando a consulta abaixo.. A minha pesquisa sql é:

set @Name=NUll;

update emp set name="gaurav" where name=@Name

Quando eu executar esta consulta.. Não actualizará o registo.. Não comparar o valor Null com o valor da coluna

Como é que isto pode ser feito?

Author: Gaurav Gupta, 2013-11-13

5 answers

SET @Name = NULL;

UPDATE emp
SET name="gaurav"
WHERE    (@Name IS NULL     AND name IS NULL)
      OR (@Name IS NOT NULL AND name = @Name)
 10
Author: ta.speot.is, 2013-11-13 10:21:48

Também pode utilizar a seguinte condição com:ISNULL()

SET @Name = NULL;

UPDATE emp SET name='gaurav' WHERE ISNULL(@Name,'XXXXXXX')=ISNULL(Name,'XXXXXXX'); 

Onde 'XXXXXXX' é uma constante de texto única que não pode existir na tabela EMP;

 0
Author: valex, 2013-11-13 10:43:41

Os ensaios com valores nulos são sempre falsos em SQL, excepto que são nulos ou não são nulos. você deve adicionar uma cláusula é nula para o seu Onde:

WHERE name = @name
**OR (name IS NULL and @name IS NULL)**
 0
Author: ARA, 2013-11-13 11:01:34
Tenta isto.UPDATE emp SET name = "gaurav" WHERE (@name IS NULL AND name IS NULL)
 -2
Author: Prashant, 2013-11-13 10:43:24

De acordo com o meu conhecimento SQL, pode guardar NULL em uma variável, mas não pode usá-lo para comparar

update emp set name="gaurav" where name is Null
 -3
Author: Luv, 2013-11-13 10:27:55