SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
Bearbeiten: Zur Erklärung benötigt RIGHT zwei Argumente - die Zeichenfolge (oder Spalte), mit der gearbeitet werden soll, und die Anzahl der zurückzugebenden Zeichen (beginnend an der "rechten" Seite der Zeichenfolge). LEN gibt die Länge der Spaltendaten zurück und wir subtrahieren vier, so dass unsere RIGHT-Funktion die 4 Zeichen ganz links "zurücklässt".
Hoffe das macht Sinn.
Nochmals bearbeiten - Ich habe gerade Andrews Antwort gelesen, und er hat sich möglicherweise richtig verhalten, und ich könnte mich irren. Wenn dies der Fall ist (und Sie die Tabelle AKTUALISIEREN möchten, anstatt nur behandelte Ergebnisse zurückzugeben), können Sie Folgendes tun:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
Er ist auf dem richtigen Weg, aber seine Lösung behält die 4 Zeichen am Anfang der Zeichenfolge bei, anstatt die 4 Zeichen zu verwerfen.
COL_LENGTH('MyTable', 'MyColumn')
statt verwendet,LEN(MyColumn)
weil ich in meinem Fall die ersten n Zeichen ausschließen wollte, unabhängig von der Größe des tatsächlichen Inhalts in der Spalte, aber das hat ansonsten gut funktioniert!Dies besagt, beginnend mit der ersten
1
Zeichenposition, ersetzen Sie4
Zeichen durch nichts''
quelle
someColumn
es sich um etwas Komplexes wie eine Unterauswahl aus einem CTE oder etwas anderem handelt, muss es nicht zweimal ausgewertet werden.Warum LEN verwenden, damit Sie 2 Zeichenfolgenfunktionen haben? Alles was du brauchst ist Charakter 5 auf ...
quelle
Versuche dies:
quelle
Hier ist ein einfaches Modell dessen, was du versuchst :)
Verwenden Sie also die letzte Anweisung für das Feld, das Sie trimmen möchten :)
Die SUBSTRING-Funktion schneidet Code1 ab dem fünften Zeichen ab und setzt sich für die Länge von CODE1 abzüglich 4 fort (die Anzahl der beim Start übersprungenen Zeichen).
quelle
Die komplette Sache
quelle
Sie können dies auch in SQL tun.
Syntax
quelle
Versuche dies. 100% arbeiten
quelle
Die Top-Antwort ist nicht geeignet, wenn Werte eine Länge von weniger als 4 haben können.
In T-SQL
Sie erhalten "Ungültiger Längenparameter an die richtige Funktion übergeben", da keine Negative akzeptiert werden. Verwenden Sie eine CASE-Anweisung:
In Postgres
Werte unter 4 ergeben anstelle eines Fehlers das unten stehende überraschende Verhalten, da beim Übergeben negativer Werte an RIGHT die ersten Zeichen anstelle der gesamten Zeichenfolge abgeschnitten werden. Es ist sinnvoller,
RIGHT(MyColumn, -5)
stattdessen zu verwenden .Ein Beispiel für den Vergleich dessen, was Sie erhalten, wenn Sie die "Länge - 5" der obersten Antwort anstelle von "-5" verwenden:
quelle
Es gibt die eingebaute Trimmfunktion, die perfekt für diesen Zweck ist.
http://www.postgresql.org/docs/8.1/static/functions-string.html
quelle
Es wäre gut zu teilen, Für DB2 verwenden:
INSERT(someColumn, 1, 4, '')
Stuff
wird in DB2 nicht unterstütztquelle
Wenn Sie die ersten Zeichen entfernen müssen, denen ein Sonderzeichen wie vorangestellt ist
#
, ist dies eine gute:quelle