DB2 SQL konvertiert dezimal in Zeichen mit Nullen

8

Wie kann ich DB2 DECIMAL (11) von 12345678 in den Zeichenwert 00012345678

umwandeln?     
macunte 20.03.2013, 21:39
quelle

8 Antworten

0

Meine LeftPad-Funktion ohne LeftPad-Funktion

%Vor%

testen ...

%Vor%     
Adam111p 24.05.2017, 12:50
quelle
11

Verwenden Sie nur die Funktion DIGITS , da dies die Länge des Feldes numerisch oder dezimal usw. überprüft und bei Bedarf mit Nullen nach links vervollständigt wird.

%Vor%     
kelgwiin 21.04.2015 15:12
quelle
9

Aufgrund Ihres Kommentars in der Antwort von Mr. Fuzzy Botton vermute ich, dass Sie sich auf befinden DB2 for i , die nicht die Funktion LPAD hat. Sie können stattdessen eine Kombination aus REPEAT und RIGHT Funktionen:

%Vor%     
bhamby 21.03.2013 13:51
quelle
8

Ссылка für Details zu CAST
und Ссылка für String-Funktionen,
Ich nehme an, das sollte den Trick machen -

SELECT LPAD( CAST(FIELD AS CHAR(11)) ,11,'0') AS PADDEDFIELD

    
AjV Jsy 20.03.2013 23:35
quelle
2

Ich weiß nicht, ob Sie es ausgearbeitet haben, versuchen Sie es jedoch:

%Vor%

Das LPAD ist das linke Padding, aber die DIGITS-Funktion war die einzige Möglichkeit, wie DB2 den numerischen Wert wie eine Zeichenfolge behandelt hat.

    
Filipe 03.10.2013 18:38
quelle
1

Wenn dies DB2 für i ist und meinColumn-Datentyp DECIMAL mit der Genauigkeit (11) und der Skalierung (0) lautet, dann gilt Folgendes:

%Vor%

gibt zurück:

%Vor%

Die Anzahl der führenden Nullen kann auf verschiedene Arten geändert werden. CASTing auf eine andere Genauigkeit vor der Verwendung von DIGITS () ist eine Möglichkeit.

    
user2338816 22.04.2015 06:46
quelle
0

Ich bin gerade in die andere Richtung gegangen: cast (field as int)

    
macunte 21.03.2013 02:03
quelle
0

Von Numeric 8,0 (datenumfld = 20170101) bis 01/01/2017 Das funktioniert für mich:

%Vor%     
Not an expert 15.03.2018 18:19
quelle

Tags und Links