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执行结果