ZONED( )-Funktion

Konvertiert numerische Daten in Zeichendaten und fügt der Ausgabe vorangestellte Nullen hinzu.

Syntax

ZONED(Zahl; Länge)

Parameter

Name Typ Beschreibung
Nummer

numerisch

Der in eine Zeichenfolge zu konvertierende numerische Wert.

Hinweis

Falls Sie einem Zeichenwert mit einer numerischen Zeichenfolge führende Nullen hinzufügen möchten, müssen Sie mit der VALUE()-Funktion Zeichendaten in den numerischen Datentyp umwandeln, bevor Sie den Wert als Eingabe für ZONED() verwenden können. Weitere Informationen finden Sie unter VALUE( )-Funktion.

Länge numerisch

Die Länge der Ausgabezeichenfolge.

Ausgabe

Zeichen.

Beispiele

Einfache Beispiele

Ganzzahleingabe

Gibt „235“ zurück:

ZONED(235; 3)

Gibt „00235“ zurück. Zwei vorangestellte Nullen wurden dem Ergebnis hinzugefügt, da Länge größer ist als die Anzahl der Ziffern in Zahl:

ZONED(235; 5)

Gibt „35“ zurück. Die Ziffer ganz links wurde vom Ergebnis abgeschnitten, da Länge kleiner ist als die Anzahl der Ziffern in Zahl:

ZONED(235; 2)

Dezimale Eingabe

Gibt „23585“ zurück, weil das ZONED-Datenformat keinen Dezimalpunkt unterstützt.

ZONED(235,85; 5)

Negative Eingabe

Gibt „64489M“ zurück, weil die Zahl negativ ist und „M“ für die letzte Ziffer „4“ steht:

ZONED(-6448,94; 6)

Gibt „489J“ zurück. Die beiden Ziffer ganz links wurden vom Ergebnis abgeschnitten, da Länge kleiner ist als die Anzahl der Ziffern in Zahl. Die Zahl ist negativ und „J“ steht für die letzte Ziffer „1“:

ZONED(-6448,91; 4)

Weiterführende Beispiele

Zeichenfeld mit Zahlen führende Nullen hinzufügen

Das Feld Mitarbeiternummer enthält den Wert "254879". Sie müssen den Wert in eine Zeichenfolge mit zehn Stellen und führenden Nullen konvertieren.

Tipp

Sie müssen mit der VALUE()-Funktion Zeichendaten in numerische Daten umwandeln, bevor Sie die numerischen Daten als Eingabe für ZONED() verwenden können.

COMMENT gibt "0000254879" zurück
ASSIGN v_Zeichenfolgenlänge = 10
ASSIGN v_Anz_Dezimalen = 0
ZONED(VALUE(Mitarbeiternummer; v_Anz_Dezimalen); v_Zeichenfolgenlänge)

Ein Schlüsselfeld beim Zusammenführen von Tabellen harmonisieren

Ihnen liegen die beiden Tabellen Forderungen und Kunde vor. Sie müssen sie für das Feld KdnNr zur weiteren Analyse zusammenführen. Die beiden Tabellen verfügen jeweils über ein Feld KdnNr, dessen Datenformat sich jedoch unterscheidet:

  • Forderungen numerisches Feld (zum Beispiel 235)
  • Kunde Feld aus fünf Zeichen, in dem Nummern durch führende Nullen aufgefüllt werden (zum Beispiel „00235“)

Um die Felder zu harmonisieren, damit die Daten und die Längen identisch sind, verwenden Sie die Funktion ZONED( ). Dadurch konvertieren Sie das Schlüsselfeld KdnNr in Forderungen in ein Zeichenfeld der Länge 5, damit es dem Format des Schlüsselfelds von Kunde entspricht:

OPEN Forderungen PRIMARY
OPEN Kunde SECONDARY
JOIN PKEY ZONED(KdnNr;5) FIELDS KdnNr Fällig Betrag SKEY KdnNr UNMATCHED TO Forderungen_Kunde OPEN PRESORT SECSORT

Bemerkungen

Funktionsweise

Diese Funktion konvertiert numerische Daten in Zeichendaten und fügt der Ausgabe vorangestellte Nullen hinzu. Üblicherweise wird diese Funktion zum Harmonisieren von Feldern verwendet, die vorangestellte Nullen erfordern, z.B. Schecknummern, Bestell- oder Rechnungsnummern.

Wann Sie ZONED( ) verwenden sollen

Verwenden Sie die Funktion, um positive numerische Werte in Zeichenwerte mit führenden Nullen zu konvertieren. Das ist hilfreich bei der Normalisierung von Daten in Feldern, die als Schlüsselfelder verwendet werden sollen.

Wenn zum Beispiel eine Tabelle Rechnungsnummern im Format „100“ in einem numerischen Feld und eine andere Tabelle Rechnungsnummern im Format „00100“ in einem Zeichenfeld enthalten, können Sie ZONED( ) verwenden, um den numerischen Wert „100“ in den Zeichenwert „00100“ zu konvertieren. Auf diese Weise können Sie ähnliche Rechnungsnummern vergleichen.

Zeichenfolgenlänge und Rückgabewerte

Dem Ausgabewert werden führende Nullen hinzugefügt, wenn der Länge-Wert größer als die Anzahl der Ziffern in Zahl ist. Wenn Länge kleiner ist als die Anzahl der Ziffern in Zahl, wird die Ausgabe von der linken Seite abgeschnitten. Wenn der Wert in Zahl die gleiche Länge wie Länge hat, werden keine Nullen hinzugefügt.

Dezimalzahlen

Das ZONED-Format beinhaltet keinen expliziten Dezimalpunkt.

Negative Zahlen

Falls die eingegebene Zahl negativ ist, wird das Zeichen ganz rechts als ein Zeichen im Ergebnis dargestellt:

  • „}“ für 0
  • ein Buchstabe zwischen „J“ und „R“ für die Ziffern „1“ bis „9“.

ZONED( ) und die Unicode-Edition von Analytics

Wenn Sie mit der Unicode-Version von Analytics arbeiten, müssen Sie die BINTOSTR( )-Funktion verwenden, um den Rückgabewert der ZONED( )-Funktion ordnungsgemäß anzuzeigen. Sie müssen die BINTOSTR( )-Funktion verwenden, wenn Sie den Rückgabewert der ZONED( )-Funktion als Parameter in einer anderen Funktion verwenden möchten.

Leitfaden für die Skripterstellung in ACL 14.1