读书人

sql server numeric 的有关问题,很疑惑

发布时间: 2012-02-23 22:01:36 作者: rapoo

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

读书人网 >SQL Server

热点推荐