Como comparar valores nulos a partir da coluna de base de dados [duplicado]
esta pergunta já tem uma resposta aqui:
- evitar se a variável for nula 3 respostas
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
5
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