SQL Wert mit führender Null auffüllen

Snaker001

Lieutenant
Registriert
Jan. 2009
Beiträge
557
Hi,

ich habe in einer DB (basierend auf firebird) eine Tabelle, wo PLZ enthalten sind. Leider fehlt bei PLZ mit führender 0 die führende 0. Also statt "01234" steht "1234" drin. Gibt es eine Möglichkeit mit SQL die führende 0 bei PLZ mit der Länge 4 einzufügen. PLZ mit der Länge 5 sollen nicht angetastet werden.

Ich komme hier leider nicht weiter :-(

Vielen Dank für Eure Hilfe.

Viele Grüße
Snaker001
 
Die einfachste Möglichkeit wäre wohl, die PLZ nicht als Zahl, sondern als Zeichenkette abzuspeichern.
 
Ja, über UPDATE und unter Verwendung der LENGHT()-Funktion.
Oder funktioniert das bei Zahlen nicht? Hab zu lange nichts mehr mit SQL gemacht.
 
Die Plz wird in der DB bestimmt als Integer(5) gespeichert. Da gibt es keine führenden Nullen.

Entweder du formatierst die Ausgabe der Plz im SQL-Statement bei der Abfrage oder im weiteren Programmablauf.
 
Und wie steht die Postleitzahl dann in dem char(10)-Feld ? Linksbündig, rechtsbündig .....
 
Sollten aber eigentlich Integer sein, da Buchstaben normal nicht vorkommen.
Formatiert wird dann halt beim Select.

Bei Char ist dann eine Formatierung im Insert/Update, wie sie mugam vorgeschlagen hat, machbar.
 
Hi,

Sollten aber eigentlich Integer sein, da Buchstaben normal nicht vorkommen.

Käse, sollte man IMMER (VAR)CHAR machen, da es natürlich auch Postleitzahlen mit Buchstaben (sprich: alphanumerisch) gibt!

VG,
Mad
 
Das sind doch Formatierungsgeschichten. Sowas macht man dann beim auslesen im jeweiligen Programm...
Datenbanken sind immer minimal zu halten.
 
Also die DB ist ja leider nicht in meiner Hand. Ist von einer Software. Dort habe ich die PLZ falsch importiert und nun werden die 4-stelligen PLZ falsch ausgelesen. Aber ich glaub ich habe dann die Lösung :-)

UPDATE table SET `plz`=LPAD(`plz`, 5, '0') where LENGTH(plz)<5

Vielen Dank für Eure Hilfe...


Viele Grüße
 
UPDATE table SET `plz`=LPAD(`plz`, 5, '0') where LENGTH(plz)<5

Der where-Teil ist sinnfrei, denn der lpad-Befehl bedeutet, dass die Länge 5 sein soll und bei
einer Länge < 5 links mit Nullen aufgefüllt wird (lpad = links, rpad = rechts).
 
Zurück
Oben