Sql im output richtig darstellen

Psicopatico

Grünschnabel
Und schon wieder habe ich ein Problem *fg*

Ich hoffe hier kann mir endlich mal jemand helfen :p

Nun zu meinem Porblem :)

Hier ein auszug aus meinem Sql

replace(rpad(substr(ICD1,1,5),5,' '),'.','') ||' '||
replace(rpad(substr(ICD2,1,5),5,' '),'.','') ||' '||
replace(rpad(substr(ICD3,1,5),5,' '),'.','') ||' '||
replace(rpad(substr(ICD4,1,5),5,' '),'.','') ||' '||
replace(rpad(substr(ICD5,1,5),5,' '),'.','') ||' '||

Die Inhalte von ICD1-5 sind 10 stellig wurden aber in einer virtuellen Tabelle auf 5 und im pl/sql nochmals auf 5 definiert. Im Output erhalte ich:

112A I10 E789 M508
oder
124A C719 R400 J690 G720 Y420
anstatt
112A S525 Y349 I48 Z921 I693

auf den ersten moment sieht das vielleicht gleich aus... aber das Problem ist, dass alle icd mit 4 zeichen als 4 zeichen und dann 1 blank dargestellt werden, die die jedoch nur 3 Zeichen haben als 3 Zeichen und dann 1 blank. Jedoch sollten die mit 3 Zeichen dann 2 Blanks einsetzten.

Weis einer wie das geht?
 
Vielleicht solltest Du den verwendeten Datentypen in der DB gleich auf char ändern anstatt varchar?

Andere Möglichkeit:
Hänge 5 Leerzeichen an den String an und mache dann ein substr

etwa so (MySql-Syntax)
select ... substr(CONCAT(Spalte,' '),1,5) as Spalte1, ......

Oder hab ich dich total falsch verstanden?

vop
 
hat jetzt funktioniert, hab den replace an einere anderen stelle hingesetzt, der pl/sql ist riesig ;p hat lange gedauert bis ich das herausgefunden habe lol danke trotzdem für die hilfe
 
Zurück