2009-06-16 8 views
2

私はADS 7.1から8.1の社内アプリケーションをいくつかアップグレードしています。Advantage 8.1 vs 7.1

AVG()関数の戻り値に変化があり、いくつかの除算の計算がありますが、これらの変更に関するドキュメントは見つかりませんでした。

私が話していることを誰かが知っているのか、詳細を説明するリンクがありますか?

答えて

4

ヘルプファイルの「バージョン8.1へのアップグレードの影響」のトピックには、変更に関する小さな段落がありますが、詳細は記載されていません。

基本的に、バージョン8.1では、Advantageは整数の除算に関してSQL標準に準拠しました。整数除算式では、小数部が切り捨てられています。過去には浮動小数点の結果になりました。

特定の式を浮動小数点データ型にしたい場合は、この変更を処理する必要があります。たとえば:

この:

select int1/int2 from mytable; 

がに変更する必要があります:

select cast(int1 as sql_float)/int2 from mytable; 
+0

はあなたのジェレミーありがとうございました。非常に有益です。これはavg関数の結果にも影響しますか?この「新しい数学」の影響を受ける他の関数 – KOGI

+0

avgはv8.1と同じように動作します。 8.1では、呼び出された式と同じデータ型を返します。たとえば、avg(intField)の場合は整数を取得します。もしあなたがavg(double_field)なら、あなたは二重などを得るでしょう。その振る舞いは同じです。 –