In Oracle das TRIM()
Mit der Funktion können Sie Zeichen von den Seiten einer Zeichenfolge abschneiden.
Sie können führende Zeichen, nachfolgende Zeichen oder beides kürzen.
Standardmäßig schneidet es Leerzeichen ab, aber Sie können optional ein anderes Zeichen oder andere Zeichen zum Zuschneiden angeben.
Syntax
Die Syntax lautet wie folgt:
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
Sowohl trim_character
und trim_source
kann VARCHAR2
sein oder ein beliebiger Datentyp, der implizit in VARCHAR2
konvertiert werden kann .
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT TRIM('.' FROM '...Cat...')
FROM DUAL;
Ergebnis:
TRIM('.'FROM'...CAT...') ___________________________ Cat
In diesem Fall wird das angegebene Zeichen (.
) wurde von beiden Seiten der Schnur entfernt.
Es wurde von beiden Seiten entfernt, weil ich nicht angegeben habe, von welcher Seite es entfernt werden soll.
Wir können dasselbe Ergebnis erhalten, indem wir BOTH
einschließen Stichwort:
SELECT TRIM(BOTH '.' FROM '...Cat...')
FROM DUAL;
Ergebnis:
TRIM(BOTH'.'FROM'...CAT...') _______________________________ Cat
Führende Zeichen kürzen
Hier ist es noch einmal, aber nur führende Zeichen wurden entfernt:
SELECT TRIM(LEADING '.' FROM '...Cat...')
FROM DUAL;
Ergebnis:
TRIM(LEADING'.'FROM'...CAT...') __________________________________ Cat...
Nachgestellte Zeichen kürzen
Und hier ist es nur mit entfernten nachgestellten Zeichen:
SELECT TRIM(TRAILING '.' FROM '...Cat...')
FROM DUAL;
Ergebnis:
TRIM(TRAILING'.'FROM'...CAT...') ___________________________________ ...Cat
Standardzeichen
In diesem Beispiel gebe ich kein zu kürzendes Zeichen an, daher werden Leerzeichen gekürzt:
SELECT TRIM(' Cat ')
FROM DUAL;
Ergebnis:
TRIM('CAT') ______________ Cat
Es ist nicht so einfach, den Effekt zu sehen, wenn Leerzeichen von beiden Seiten getrimmt werden.
Hier ist ein weiteres Beispiel, das es einfacher macht zu erkennen, dass der Leerraum auf beiden Seiten entfernt wurde:
SELECT
'My' || ' Fat ' || 'Cat',
'My' || TRIM(' Fat ') || 'Cat'
FROM DUAL;
Ergebnis:
'MY'||'FAT'||'CAT' 'MY'||TRIM('FAT')||'CAT' _____________________ ___________________________ My Fat Cat MyFatCat
Zahlen
Das String- und Trimmzeichen kann VARCHAR2
sein oder ein beliebiger Datentyp, der implizit in VARCHAR2
konvertiert werden kann , also können wir eine Zahl wie die folgende übergeben. Der Rückgabewert ist jedoch VARCHAR2
.
SELECT TRIM(LEADING 0 FROM 007)
FROM DUAL;
Ergebnis:
TRIM(LEADING0FROM007) ________________________ 7
Hier wird eine andere Nummer getrimmt:
SELECT TRIM(LEADING 1 FROM 117)
FROM DUAL;
Ergebnis:
TRIM(LEADING1FROM117) ________________________ 7
Nullwerte
Wenn entweder die Zeichenfolge oder das Trimmzeichen null
ist das Ergebnis ist null
:
SET NULL 'null';
SELECT
TRIM(null FROM '...Cat...'),
TRIM(BOTH FROM null),
TRIM(null FROM null)
FROM DUAL;
Ergebnis:
TRIM(NULLFROM'...CAT...') TRIM(BOTHFROMNULL) TRIM(NULLFROMNULL) ____________________________ _____________________ _____________________ null null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Leere Strings trimmen
Das Übergeben einer leeren Zeichenfolge als Trimmzeichen führt zu null
:
SET NULL 'null';
SELECT TRIM('' FROM ' Cat')
FROM DUAL;
Ergebnis:
TRIM(''FROM'CAT') ____________________ null
Aber das Hinzufügen eines einzelnen Leerzeichens zum leeren String ändert dies und entfernt alle Leerzeichen aus dem String:
SET NULL 'null';
SELECT TRIM(' ' FROM ' Cat')
FROM DUAL;
Ergebnis:
TRIM(''FROM'CAT') ____________________ Cat
Falsche Argumentanzahl
Aufruf von TRIM()
ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT TRIM()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT TRIM() FROM DUAL Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause: *Action:
Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT TRIM(' Cat ', 2)
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT TRIM(' Cat ', 2) FROM DUAL Error at Command Line : 1 Column : 20 Error report - SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause: *Action:
Siehe auch RTRIM()
und LTRIM()
für gezieltere Funktionen zum Trimmen jeder Seite einer Saite. Mit diesen Funktionen können Sie auch mehrere Zeichen aus der Zeichenfolge entfernen.