------解决方案-------------------- null 不可等于
------解决方案-------------------- 当选项SET ANSI_NULLS 设置为OFF的时候,结果是相同的 设置为ON的时候结果不同
------解决方案-------------------- declare @t table(ID int,[name] varchar(10)) insert @t select 1,'A' insert @t select 2,'G' insert @t select null,'H' insert @t select '','K' select * from @t where id is null select * from @t where id=null
ID name ----------- ---------- NULL H
(1 行受影响)
ID name ----------- ----------
(0 行受影响)
------解决方案--------------------
SQL code
当选项SET ANSI_NULLS 设置为OFF的时候,结果是相同的
设置为ON的时候结果不同
select * from where b is null与
select * from where b = null
select * from where b = 'null' --当b=null字符时
------解决方案--------------------
create table test
(
a varchar(10) null
)
insert test
select NULL
union all
select '1'
union all
select NULL
union all
select '2'
union all
select NULL
select * from test
--有多条结果返回
set ANSI_NULLS off
go
select * from test where a = NULL
go
--没有结果返回
set ANSI_NULLS on
go
select * from test where a = NULL
go
drop table test