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

新手求教:将字符型转换为数值型后,如何保留转换前的空值?
我数据库中的雨量字段是字符型,需要将其转换为数值型进行其他运算,可利用以下语句执行后,却将雨量字段中的空值转为0,这不是我所希望的。现在要怎么办才能使其保留空值,不转为0   ?  
        还有一个问题:就是原字段中的字符 '0.0 ',用以下语句执行后,也显示为0,如何才能使其显示为0.0   ?
     
语句:SELECT   年,   月,   日,   CONVERT(real,   雨量)   AS   日雨量   FROM   table

------解决方案--------------------
你试试
SELECT 年, 月, 日, CONVERT(real, isnull(雨量, ' ')) AS 日雨量 FROM table
------解决方案--------------------
语句:SELECT 年, 月, 日,
CASE WHEN 雨量 is null then ' ' else CONVERT(real, 雨量) end AS 日雨量
FROM table

------解决方案--------------------
select 年, 月, 日,case when CONVERT(real, 雨量) <> 0 then CONVERT(real, 雨量) else 雨量 end 日雨量 from table
------解决方案--------------------
--try

SELECT 年, 月, 日, CONVERT(雨量 as decimal(10, 1)) AS 日雨量 FROM table
------解决方案--------------------
SELECT 年, 月, 日,
CASE WHEN 雨量 IS NOT NULL THEN CONVERT(real, 雨量) END
ELSE 雨量 AS 日雨量
FROM table
------解决方案--------------------

case when ltrim(Rtrim(雨量)) = ' ' then null
else cast(雨量 as decimal(9,1))
end as 雨量