【发布时间】:2009-06-16 16:42:07
【问题描述】:
我正在将一些内部应用程序从 ADS 7.1 升级到 8.1。
不久前有人告诉我,AVG() 函数的返回值以及一些除法计算发生了变化,但我找不到关于这些变化的任何文档。
有谁知道我在说什么或者有一个解释细节的链接?
【问题讨论】:
标签: advantage-database-server server-administration
我正在将一些内部应用程序从 ADS 7.1 升级到 8.1。
不久前有人告诉我,AVG() 函数的返回值以及一些除法计算发生了变化,但我找不到关于这些变化的任何文档。
有谁知道我在说什么或者有一个解释细节的链接?
【问题讨论】:
标签: advantage-database-server server-administration
帮助文件中的“升级到版本 8.1 的影响”主题有一小段关于更改的内容,但没有详细说明。
基本上,从 8.1 版开始,Advantage 现在在整数除法方面遵循 SQL 标准。整数除法表达式的小数部分被截断,过去它们会导致浮点结果。
要解决此更改,如果您仍希望某些表达式产生浮点数据类型,则可能必须强制转换它们。例如:
这个:
select int1 / int2 from mytable;
需要改为:
select cast( int1 as sql_float ) / int2 from mytable;
【讨论】: