Datenbank aus 1 000 soll 1000 werden (30 000 000 -> 30000000)
Bernd
- datenbank
- sql
0 Rolf B0 Bernd
0 Der Martin
Hallo,
beim Umstellen und bereinigen meine Datenbank habe ich ein paar Spalten gefunden die eigentlich nur einen Integer Wert enthalten, aber eine falsche Spalten Formatierung (var).
So sind viele Zahlen als 1 000 abgespeichert und bei anderen Spalten habe ich ein Komma statt einem Punkt in der Werten. Also 3,0 statt 2.0.
Gibt es eine elegante Möglichkeit diese Werte zu ändern
Bernd
Hallo Bernd,
die Leerstelle müsste man problemlos mit
Update Tabelle
Set spalte=replace(spalte, ' ', '')
where Spalte like '% %'
wegbekommen. Die where Klausel ist nicht unbedingt nötig, könnte aber bei einem schlechten SQL Optimizer die Query beschleunigen.
Ein Komma durch einen Punkt kann man so auch ersetzen, aber ob dabei was Sinnvolles rauskommt hängt von den Daten ab. SELECTe dir alle Zeilen raus wo ein Komma drin ist und gucke es dir an. Sofern es nicht zu viel ist...
Rolf
Danke, ich werde es mal ausprobieren und mitteilen ob es sinnvoll ist, oder war
Bernd
Hi,
beim Umstellen und bereinigen meine Datenbank habe ich ein paar Spalten gefunden die eigentlich nur einen Integer Wert enthalten, aber eine falsche Spalten Formatierung (var).
So sind viele Zahlen als 1 000 abgespeichert und bei anderen Spalten habe ich ein Komma statt einem Punkt in der Werten. Also 3,0 statt 2.0.
das heißt, die Zahlen sind nicht als Zahl gespeichert, sondern als String.
Gibt es eine elegante Möglichkeit diese Werte zu ändern
Kommt draf an, was du elegant findest. Für mich sieht das aus wie:
Der mit (*) markierte Schritt ist der eigentliche Knackpunkt. Wenn deine Zahlen in so unterschiedlichen Formaten notiert sind, brauchst du da einige sehr knifflige Regeln oder eine sehr gute Heuristik.
Einen schönen Tag noch
Martin
Der mit (*) markierte Schritt ist der eigentliche Knackpunkt. Wenn deine Zahlen in so unterschiedlichen Formaten notiert sind, brauchst du da einige sehr knifflige Regeln oder eine sehr gute Heuristik.
Und (Ach!) auch Glück.
Soll heißen: Das Ergebnis muss kontrolliert werden.