2009-06-16 11 views
2

Ich bin dabei, ein paar In-House-Anwendungen von ADS 7.1 auf 8.1 zu aktualisieren.Vorteil 8.1 vs 7.1

Ich wurde vor einiger Zeit gesagt, dass es Änderungen in den Rückgabewerten der AVG() Funktion sowie einige Division Berechnungen gibt, aber ich kann keine Dokumentation zu diesen Änderungen finden.

Weiß jemand, wovon ich spreche oder habe einen Link, der die Details erklärt?

Antwort

4

Das Thema "Auswirkungen der Aktualisierung auf Version 8.1" in der Hilfedatei enthält einen kleinen Absatz über die Änderung, geht aber nicht auf Details ein.

Grundsätzlich gilt, dass Advantage ab Version 8.1 nun den SQL-Standard in Bezug auf Integer-Division einhält. Integer-Divisionsausdrücke haben den Bruchteil abgeschnitten, wo sie in der Vergangenheit zu einem Gleitkommaergebnis führen würden.

Um diese Änderung zu beheben, müssen Sie möglicherweise bestimmte Ausdrücke umwandeln, wenn Sie immer noch möchten, dass sie zu einem Fließkommadatentyp führen. Diese

: Zum Beispiel

select int1/int2 from mytable; 

müssten sich ändern:

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

Danke Jeremy. Sehr informativ. Beeinflusst das auch das Ergebnis der avg-Funktion? Welche anderen Funktionen sind von dieser "neuen Mathematik" betroffen? – KOGI

+0

avg verhält sich genauso wie in v8.1. In 8.1 gibt es denselben Datentyp zurück wie der Ausdruck, an dem es aufgerufen wird. Zum Beispiel, wenn Sie avg (intField) erhalten Sie eine ganze Zahl. Wenn du avg (double_field) hast, bekommst du ein Double, usw. Das Verhalten ist das gleiche. –