mssql sqlserver sql脚本检索null的方法分享


摘要:
下文讲述在sql server数据库中,检索数据表中存在null数据的方法分享,如下所示:
实验环境:sql server 2008 R2


下文将通过举例的方式分享sql检索null(空值)的方法分享,和null空值检索使用索引的情况分析

    create table test
(keyId int identity,info varchar(30))
go

---生成1万行基础数据

declare @i int
set @i =0 
while @i<10000
begin 
  
  if @i%9 =0 
  begin
     insert into test(info)values(null)
  end
  else
  begin
    insert into test (info)
      values(convert(varchar(20),@i))
  end
 
 set @i = @i +1 
end




---查询列中 包含null值、不包含null值、检索特定值得方法的方法

select info from test  where info is null 

select info from test  where info is not  null 
  
select info from test  where info ='1'


---建立索引
 IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[test]') AND name = N'IX_test_Info')
DROP INDEX [IX_test_Info] ON [dbo].[test]  
GO

 
CREATE NONCLUSTERED INDEX [IX_test_Info] ON [dbo].[test] 
(
	[info] ASC
)
go

/*
建立索引后
  查询列中 包含null值、不包含null值、检索特定值得方法的方法
  所有检索操作都会走相关索引,如下所示:

*/
select info from test  where info is null 

select info from test  where info is not  null 
  
select info from test  where info ='1'


--truncate table test 
--drop table test 

mssql_sqlserver_null_检索及索引查找

mssql_sqlserver_null_检索及索引查找



总结:
包含null值的列数据 ,需使用is null
不包含null值的列数据,需使用is not null
----------------------
如果包含null列上建立索引后,使用is null 或is not null,也会走相应的索引查找。