以下是我称为sample的表。如何在where子句中添加空值(比较)
id name grade sign
1 pinky A null
2 smita B sam
我想新的记录添加到样品表核对姓名,年级和sign.If记录未找到这些组合后,插入别的没有。
declare @count int
select @count = count(*) from sample where name = @name and grade= @grade and sign = @sign
-- @name,@grade and @sign are input para
if(@count = 0)
begin
-- insert
end
,当我试图添加一个小指第一个记录,“A”和问题发生null.It给予数为零,并记录得到added.How来处理呢?我的表可能有空值或可能不会有空值。取决于。 我知道null与null的比较,总是false。 (null= null)
你好朋友,谢谢你的帮助。我试了下面的代码。
select @count = count(*) from sample where name = @name and grade= @grade and (sign = @sign OR (Sign IS NULL AND @Sign IS NULL))
不过,这并不worked.It给我算的零,而不是1
我试着喜欢这个also.I工作时,我试图添加第一个记录是小指,A和null.Ithas显示我1作为count.Prompt我进一步添加。
select @count = count(*) from sample where name = @name and grade= @grade and (@Sign IS NULL or sign = @sign)
,但是当我试图添加具有值为“史密塔”,“B”新列失败,null.It给了我一个为count.But是wrong.Record不会为这些组合
存在经过乌尔查询再次@Mukund
select @count = count(*) from sample where name = @name and grade= @grade and (sign = @sign OR (Sign IS NULL AND @Sign IS NULL)).
It gave me count as zero instead of 1 when I am trying to add 'pinky',A and null
'WHERE(签名= @sign OR(注册IS NULL和@ Sign IS NULL))' – GarethD 2014-10-10 10:21:03
你能检查我的解决方案吗? @Swati – Mukund 2014-10-10 10:43:56
我已经添加了一个小提琴到我的答案,看看它是否可以帮助你。 – Banana 2014-10-10 11:07:34