你的数字肯定不是null,
可以试试select isnull(null,0) as 值

解决方案 »

  1.   

    数字 字段如果包括 null 则 isnull(数字,0) 结果为0
             如果包括 空格 则 isnull(数字,0) 结果为空格
    isnull 只用来判断是否有null
      

  2.   

    数字 字段如果包括 null 则 isnull(数字,0) 结果为0
             如果包括 空格 则 isnull(数字,0) 结果为空格
    isnull 只用来判断是否有null
      

  3.   

    在SQL中,要特别注意空格不是NULL,空格会当作字符存贮,数字型的数据也不例外。
      

  4.   

    查询分析器执行:select isnull(null,0)select isnull(null,'被null的字符')select isnull('null','不会出来应为它不是null')select case when null is null then '是null' else '不是null' endselect case when 'null' is null then '是null' else '不是null' end
      

  5.   

    這句有問題:
    select isnull(sum(数字),0)  as 值 from 表名
    如果有數字是null則sum(數字)是NULL,則返回值是0
    應該寫成;
     select sum(isnull(数字,0))  as 值 from 表名
      

  6.   

    这样说吧, 我有一个表, 其中一个字段名是 s_z , 类型是 int , auto_id 是自增量 identity , 最大的id号是80, 我在查询分析器中执行select isnull(s_z,0) as 数字 from 表名 where id>100这时分析器显示的 "数字" 列下面没有内容, 而我用select isnull(sum(s_z),0) as 数字 from 表名 where id>100它这里在 "数字" 列下面显示的值是 0 , 为什么? 
      

  7.   

    嗯, 是 auto_id , 不是 id . 不要因为这个与我抬扛. 
      

  8.   

    ISNULL,只會對該字段是null值的起作用
      

  9.   

    应为:
    select sum(1) from sysobjects where 1=2
    它会返回一个nullselect 1 from sysobjects where 1=2
    它什么也不返回如果你要:
    select isnull((select 1 from sysobjects where 1=2),0)
      

  10.   

    楼主,这是因为如果没有符合条件的记录,SUM同样会返回一个值NULL,所以仍然有一个返回值,再用ISNULL,当然会变成0了。你试试不用ISNULL,看看会不会出现一个NULL的返回值!
      

  11.   

    哦, 明白了, 意思是指我用普通的 select 它在没有查找相应的记录时, 根本没有返回任何东东, 而用了 sum 时, 则会返回 null 对吧.如果是这样, 我如何在普通的 select 没有返回东东的时候将它的值设为 0 呢? 已如同 isnull 的功能那样?
      

  12.   

    哈哈!“ 我如何在普通的 select 没有返回东东的时候将它的值设为 0 呢?”?我都糊涂了。select在没有符合条件的记录时什么也不返回,而集合函数一定返回总计结果null,这难道需要“颠覆”吗?