有一个办法就是设置缺省值,还有,对于null字段,不能用是否等于null或"",应该使用“is  null”,来判断

解决方案 »

  1.   

    select * from 表 where 列 is null
    select * from 表 where 列 is not nullselect * from 表 where isnull(列,'')=''
      

  2.   

    用isnull函数处理
    select * from 表 where isnull(列,'')=''
    这样,不管列值是null还是'',都被当作''处理.你也可以在设计表时,设计列的默认值为'',这样,你不输入数据的列就不会保存为null了.
      

  3.   

    select * from 表 where isnull(列,'')=''
      

  4.   

    select * from 表 where 列 is null
    select * from 表 where 列 is not null
      

  5.   

    我是用很多的列段的,总不能每一个输入的字段都用if then查一下吧
    原来用asp的输入时,空的不输入的地方进到数据库中时也是空的,也就是说没有null字的,但是后来我对用户输入的时间格式做检查,只要一经过检查,数据库中的输入的就从空值转成NULL了,但我打印 sql 语句时,仍然是 value = '' 
    也就是说不做时间格式的检查时 value = '' 输入数据库是空,什么都没有
    经过时间格式的检查时 value = '' 输入数据库是NULL,这种情况如果我的查询语句 where value = ''就查不出来
    字段太多,不可能每一个值都检查,我只想知道,为什么经过if then语句时,输入的值就会有变化,如何防止这种变化?