表名﹕km_emp
字段﹕km_titleid(空/NULL), u_sex ,u_empid(非空)語句1:select u_levelid from km_emp
     本來這個字段沒有東西。。查詢結果2種﹕null  和  空
語句2﹕select count(u_levelid) from km_emp 返回1500
     統計出了數字。我只想統計有插入結果的紀錄﹐怎么去掉Null和 空值?
     比如統計u_levelid='ZAAAA' 而不是u_levelid=null/u_levelid=''
語句3﹕select distinct dbo.gettitlename(u_titleid) as u_type,
u_sex_m=sum(case when u_sex='m' then 1 else 0 end),
u_sex_f=sum(case when u_sex='f' then 1 else 0 end),
u_count=count(*)from km_emp 
where u_titleid is not null 
and u_sex is not null 
group by u_titleid 
order by u_type

解决方案 »

  1.   

    select u_levelid from km_emp where u_levelid  is not null and u_levelid <>''
      

  2.   

    全都加上2个条件  u_levelid <>'' and u_levelid  is not null空和null是不一样的
    空是值的具体表现,而null是无值
      

  3.   

    select count(u_levelid) from km_emp  where u_levelid  is not null and u_levelid  <>''
      

  4.   

    加上条件isnull(u_levelid,'')<>''
      

  5.   

    u_levelid  is not null and trim(u_levelid)   <>''
      

  6.   

    如果不想要NULL,想用空串代替它,可以在设计表的时候设置该列的默认值为''.
      

  7.   

    果然
    ''和null 是不一样的declare @t table (a int ,b char)
    insert into @t select 1,'' 
    insert into @t(a) select 2 
    select * from @t
    select a,isnull(b,0) b from @t
    select * from @t where b=''a b
    1  
    2 null
    a b
    1  
    2 0
    a b
    1  
    学习了