我对Sybase服务器的一个查询是返回垃圾数据。经过一些调查,我发现数据类型为double的列之一导致了这个问题。如果我没有选择特定的列,那么查询将返回正确的结果。问题列是一个双精度小数位数很大的列。我尝试使用四舍五入函数直到小数点后4位,但我仍然得到损坏的数据。如何在查询中正确指定列以获取正确的数据?
我使用的是windows7box和Sybase自适应服务器企业驱动程序。(Sybase客户端15.5)。我使用的是32位驱动程序。
示例结果:
在windows 7计算机上使用sybase ASE驱动程序的结果不正确
"select ric_code as ric, adjusted_weight as adjweight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'"
ric adjweight
1 AQG.AX NA
2 \020 NA
3 <NA> NA使用Merant驱动程序在windows xp计算机上更正结果
"select ric_code, adjusted_weight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'"
ric_code adjusted_weight
1 AQG.AX 0.3163873547向您致敬,阿洛克
发布于 2012-05-08 18:30:35
您可以尝试转换为数字,如下所示:
select ric_code as ric, weight, convert(numeric(16,4), adjusted_weight) as adjweight, currency as currency
from v_temp_idx_comp
where index_ric_code='.AXJO'https://stackoverflow.com/questions/10496509
复制相似问题