日期:2014-05-17  浏览次数:20497 次

SQL isunll 在什么情况下使用
isnull(col1,'')='3' 
如上面的语句,
这个语句在什么情况下使用
越详细越好,希望大神们  能给我定一个思考的方向。

------解决方案--------------------
 isnull(col1,'')='3' 

其实关键是 isnull函数的用法,就是在col1这个列有null值的时候,那么就是空串,如果不是null,那么就是col1列的值,是否等于'3'

也就是:

case when col1 is null then '' else col1 end = '3'
------解决方案--------------------
以上語句跟以下語句是一樣的效果:col1='3'
------解决方案--------------------
当你发现表中可能由于某些情况,比如存有null,或者因为外联结导致null,但是又想给一个实际的值,以免对NULL的操作无效时,可以使用inull。上面的语句一般是说,如果col1没有数据,那么我就取3这个“字符串”,不是数值。不过你那个好像对于null是没有结果的哦,因为你用了''作为默认值
------解决方案--------------------
NULL值是不能进行运算或者拼字符串的。
通常在数据库设计的时候,如果没有给定默认值,再向数据库中插入数据是就会出现NULL值。
为了显示或者运算或是操作不出错,就会用到ISNULL(字段,‘xxx’)函数,就是如果是NULL,就把他转化成xxx。
------解决方案--------------------
给你个测试结果,你执行一下脚本,然后琢磨琢磨,或许就会理解了。

create table #test(
id int null,
charname varchar(10) null
)

insert into #test
select 1,'A' 

insert into #test (id)
select 3

select * from #test
select *,ISNULL(charname,'XX') from #test 
select *,ISNULL(charname,'XX') from #test  where ISNULL(charname,'')='XX'


08版本的SQL执行结果