PDA

View Full Version : Alphafeld rechtsbündig stellen, mit führenden 0en



programmer400
02-07-12, 13:33
Bei einer Datenübernahmen kommt die Kundennummer alpha, linksbündig mit verschiedenen Längen (max. 6stellig) daher.

Kann ich mit SQL diese Ziffern rechtsbündig stellen und mit führenden 0en versehen.

Oder bleibt nix anderes übrig, als zu programmieren?

Fuerchau
02-07-12, 13:40
digits(dec(trim(Feld):6:0))

Funktioniert nur, wenn "Feld" immer numerisch und nicht leer ist.

malzusrex
02-07-12, 13:44
Wenn dein Feld Alpha ist
folgendes 5 x aufrufen

update myfile
set kunde = '0' concat Substr(kunde, 1, 5)
where Substr(kunde, 6, 1)= ' '

B.Hauser
02-07-12, 13:54
... oder


Update MyTable
Set MyCol = Right('000000' concat Trim(MyCol), 6)
...

... und das nur 1x aufrufen

Birgitta

malzusrex
02-07-12, 14:08
Okay,
das sieht natürlich eleganter aus

programmer400
02-07-12, 18:01
hab die Varianten von malzusrex verwendet da "right" unter V5R2M0 anscheinend noch nicht unterstützt wird.

Fuerchau
02-07-12, 18:48
Meine Variante wäre auch nur ein Aufruf, sogar ab V4 :).

B.Hauser
03-07-12, 06:40
Meine Variante wäre auch nur ein Aufruf, sogar ab V4 :).

Vorausgesetzt natürlich, dass das Feld nur numerische Zeichen enthält!

Ansonsten sollte das folgende Statement auch unter V5R2 funktionieren:


Update MyTable
Set MyCol = Translate(Space(6 - Length(Trim(MyCol))), '0', ' ') concat Trim(MyCol)
...


Birgitta