2017-05-25 7 views
0

Ich habe eine Tabellenspalte mit Werten, aus denen ich alle Bindestriche entfernen möchte. Die Werte können mehr als einen Bindestrich enthalten und in der Länge variieren.Sonderzeichen in Spaltenwerten entfernen/ersetzen?

Beispiel: Für alle Werte möchte ich '123 - ABCD - efghi' durch '123ABCDefghi' ersetzen.

Was ist der einfachste Weg, um alle Bindestriche zu entfernen & alle Spaltenwerte in der Tabelle aktualisieren?

+0

'replace ('xxx - xxxx', '-', '')' ist wahrscheinlich am einfachsten –

Antwort

5

können Sie verwenden, um die regexp_replace Funktion nur die Ziffern und Buchstaben nach links, wie folgt aus:

Das bedeutet, dass alles, was keine Ziffer oder ein Buchstabe oder eine Unterstreichung ist, durch nichts ersetzt wird (das schließt -, space, dot, comma, usw. ein).

Wenn Sie auch die _ ersetzen möchten (\w wird es verlassen) können Sie die Regex zu [^\w]+|_ ändern.

Oder wenn Sie streng mit den Zeichen sein wollen, die entfernt werden müssen, verwenden Sie: [- ]+ in diesem Fall hier ein Bindestrich und ein Leerzeichen.

0

Sie können dies verwenden.

update table set column = format('%s%s', left(column, 3), right(column, -6));

Bevor:

Nach:

+0

siehe Bearbeiten, ich hätte klarstellen müssen, dass die Strings vor und nach dem Bindestrich in der Länge variieren können und der gesamte Wert enthalten sein kann mehr als ein Bindestrich (alles entfernen) –

+0

Bitte lesen Sie http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557 und die angenommene Antwort –