首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

select case 急等解决方案

2012-01-16 
select case 急等select完成情况,(CASEWHEN收货日期1900-01-01THENelse收货日期END)as收货日期fromhtzx如

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

热点排行