select case 急等
select   完成情况, 
 (CASE       
    WHEN   收货日期   =    '1900-01-01 '   THEN    ' ' 
    else   收货日期 
 END)    
 as   收货日期      from   htzx   
 如果等于 '1900-01-01 '   则显示空 
 如果不等于 '1900-01-01 '   那么有等于本身 
 可是却不行,都等于本身了。 
------解决方案--------------------select 完成情况, 
 (CASE   
  WHEN 收货日期 =  '1900-01-01 ' THEN  ' ' 
  else convert(varchar,收货日期,120) 
 END)  
 as 收货日期  from htzx
------解决方案--------------------你的收货日期应该是不只有日期,还有时间的吧,那当然就不行     
 select 完成情况, 
 (CASE 
 WHEN convert(varchar(10),收货日期,120) =  '1900-01-01 ' THEN  ' ' 
 else convert(varchar,收货日期,120) 
 END) 
 as 收货日期 from htzx
------解决方案--------------------CASE   
  WHEN 收货日期 =  '1900-01-01 ' THEN null 
  else 收货日期 
 END
------解决方案--------------------你写的CASE 没错,关键的问题在于收货日期是日期类型,数据库会把你转换好的 ' ' 又转换成日期类型, ' ' 转换成日期类型就是 '1900-01-01 ' ,看起来好像都等于本身了 
 最后把这一列的数据都转换成字符型就没问题了