我在我的表中有记录,其中Name列具有Null值..我想使用以下查询更新该记录.. 我的SQL查询是:
set @Name=NUll;
update emp set name="gaurav" where name=@Name
当我运行此查询时..它不会更新记录..它不会将值Null
与列值进行比较
如何做到这一点?
答案 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