Inhaltsverzeichnis

Search

  1. Vorwort
  2. Umwandlungssprache
  3. Konstanten
  4. Operatoren
  5. Variablen
  6. Datumsangaben
  7. Funktionen

Referenzhandbuch für die Umwandlungssprache

Referenzhandbuch für die Umwandlungssprache

TRUNC (Zahlen)

TRUNC (Zahlen)

Schneidet Zahlen nach einer bestimmten Stelle ab. TRUNC kann auch zum Abschneiden von Datumsangaben eingesetzt werden.

Syntax

TRUNC(
numeric_value
[,
precision
] )
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
numeric_value
Erforderlich
Numerischer Datentyp. Übergibt die Werte, die abgeschnitten werden sollen. Sie können jeden beliebigen Umwandlungssausdruck eingeben, dessen Auswertung einen numerischen Datentyp ergibt.
precision
Optional
Kann eine positive oder negative Ganzzahl sein. Sie können jeden beliebigen Umwandlungsausdruck eingeben, dessen Auswertung eine Ganzzahl ergibt. Die Ganzzahl gibt die Anzahl der Stellen an, nach denen abgeschnitten wird.
Wenn
precision
eine positive Ganzzahl ist, gibt TRUNC den
numeric_value
mit der von
precision
angegebenen Anzahl von Dezimalstellen zurück. Wenn
precision
eine negative Ganzzahl ist, ändert TRUNC die angegebene Anzahl von Ziffern links vom Dezimalzeichen zu Nullen. Wenn Sie das Argument
precision
auslassen, schneidet TRUNC den gesamten Dezimalbereich von
numeric_value
ab und gibt eine Ganzzahl zurück.
Wenn Sie für
precision
einen Dezimalwert angeben,
Data Integration Service
PowerCenter Integration Service
numeric_value
auf die nächste Ganzzahl, bevor der Ausdruck ausgewertet wird.
Bei Mappings im hohen Präzisionsmodus sollten Sie vor dem Abschneiden die Funktion ROUND ausführen.
Beispiel: Angenommen, die Werte im Port QTY werden mithilfe des folgenden Ausdrucks abgeschnitten:
TRUNC ( QTY / 15 )
Wenn der Wert für QTY = 15000000, gibt die Sitzung den Wert 999999 zurück. Das erwartete Ergebnis ist jedoch 1000000.
Zur Laufzeit wertet
Data Integration Service
zunächst den Konstantenteil des Ausdrucks aus und dann erst den Variablenteil.
Im Ausdruck oben ist QTY der Variablenwert, (1/15) der Konstantenwert.
Wenn QTY = 15000000, wird der Ausdruck wie folgt ausgewertet:
TRUNC ( 15000000 * (1/15) TRUNC ( 15000000 * (1/15) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 15000000 * 0.0666666666666666) = TRUNC ( 999999.99999999) = 999999
Wenn Sie vor dem Abschneiden die Funktion ROUND ausführen, wird der Ausdruck folgendermaßen ausgewertet:
TRUNC (ROUND (QTY/15, .99999999999999999999999999)).

Rückgabewert

Numerischer Wert.
NULL, wenn eines der Argumente NULL ist.
Wenn der Rückgabewert eine Dezimalmal mit Präzision höher als 15 ist, können Sie „Hohe Präzision“ aktivieren, um Dezimalgenauigkeit bis zu 28 Stellen zu gewährleisten.

Beispiele

Die folgenden Ausdrücke schneiden die Werte im Port PRICE ab:
TRUNC( PRICE, 3 )
PRICE
RETURN VALUE
12.9995
12.999
-18.8652  
-18.865
56.9563
56.956
15.9928
15.992
NULL
NULL
TRUNC( PRICE, -1 )
PRICE
RETURN VALUE
12.99
10.0
-187.86  
-180.0
56.95
50.0
1235.99
1230.0
NULL
NULL
TRUNC( PRICE )
PRICE
RETURN VALUE
12.99
12.0
-18.99  
-18.0
56.95
56.0
15.99
15.0
NULL
NULL