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