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.