日期:2014-05-18  浏览次数:20450 次

困惑 isnull(b.Col1,0) 函数
SQL code


select b.Col1,[color=#FF0000]isnull(b.Col1,0)[/color][Col2],a.* 
from master.dbo.spt_datatype_info a
left join (select top 0 1 [Col1]) b on b.Col1=a.ss_dtype





请教:
isnull(b.Col1,0) 这列的值 为什么是 1 而不是 0 ?????


------解决方案--------------------
isnull(b.Col1,0)--当b.Col1为null时设为0 ,不为0就说明select top 0 1 [Col1]结果不为空,楼主单独执行这个查询语句看看
------解决方案--------------------
isnull函数的参数对应的意义楼主有查资料么?

isnull(exp1,value2)

当exp1值是NULL时按value2处理。
------解决方案--------------------
b.Col1 的值不是null所以不是0
------解决方案--------------------
很奇怪啊
楼主模拟点master.dbo.spt_datatype_info 的数据
既然case when b.Col1 is null then 写条件会成立 会成立
isnull应该也成立
------解决方案--------------------
探讨
有没有谁帮我在 sql 2000 下执行一下下面这条,是什么结果:

SQL code

select top 5 b.Col1,isnull(b.Col1,0)[Col2], case when b.Col1 is null then 0 else 1 end [Col3]
from master.dbo.spt_datatype_info a
left join (select t……