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

sql server numeric 的有关问题,很疑惑,解决100分奉送

2012-02-23 
sql server numeric 的问题,很疑惑,解决100分奉送有三个字段tukacdnvarchar(2)jissekisunumeric(19,4)urit

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

热点排行