日期:2014-05-19  浏览次数:20550 次

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 ' ,看起来好像都等于本身了
最后把这一列的数据都转换成字符型就没问题了