sql server numeric 的问题,很疑惑,解决100分奉送
有三个字段 
 tukacd      nvarchar(2) 
 jissekisu      numeric(19,4) 
 uritanka   money 
 现在我执行以下操作: 
 select   case   when   tukacd   =    '2 '   then   floor(jissekisu*uritanka)   else   round((jissekisu*uritanka),2)      end   from   t_syukka   
 查询结果全都是整数,无论tukacd   是否等于2 
 我执行 
 select   round((jissekisu*uritanka),2)      from   t_syukka 
 没问题,保留2位小数,困惑中... 
------解决方案--------------------这样: 
 select case when tukacd =  '2 ' then floor(jissekisu*uritanka)*1.00 else round((jissekisu*uritanka),2)  end from t_syukka     
 如果查询第一行为INT,那后面所有行都为INT     
 floor(jissekisu*uritanka)*1.00   --为了避免这种情况 *1.00是必要的
------解决方案--------------------同样迷惑 
 把jissekisu*uritanka中的uritanka转换成小数类型再相乘试试
------解决方案--------------------not first line,but all line 
 floor function return a int and a column with one datatype