如何比较数据库列中的Null值

时间:2013-11-13 10:18:45

标签: sql-server null

我在我的表中有记录,其中Name列具有Null值..我想使用以下查询更新该记录.. 我的SQL查询是:

set @Name=NUll;

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

当我运行此查询时..它不会更新记录..它不会将值Null与列值进行比较

如何做到这一点?

5 个答案:

答案 0 :(得分:10)

SET @Name = NULL;

UPDATE emp
SET name="gaurav"
WHERE    (@Name IS NULL     AND name IS NULL)
      OR (@Name IS NOT NULL AND name = @Name)

答案 1 :(得分:0)

此外,您可以在ISNULL()

中使用以下条件
SET @Name = NULL;

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

其中'XXXXXXX'是EMP表中不存在的唯一字符串常量;

答案 2 :(得分:0)

除了IS NULL或IS NOT NULL之外,SQL中的空值测试始终为false。 你应该在你的WHERE中添加一个IS NULL子句:

WHERE name = @name
**OR (name IS NULL and @name IS NULL)**

答案 3 :(得分:-2)

试试这个UPDATE emp SET name = "gaurav" WHERE (@name IS NULL AND name IS NULL)

答案 4 :(得分:-3)

根据我的SQL知识,您可以将 NULL 存储在变量中,但不能将其用于比较

update emp set name="gaurav" where name is Null