In Oracle das RTRIM()
Mit dieser Funktion können Sie den rechten Teil einer Zeichenfolge trimmen. Standardmäßig werden Leerzeichen entfernt, aber Sie können optional ein anderes Zeichen oder andere Zeichen zum Trimmen angeben.
Syntax
Die Syntax lautet wie folgt:
RTRIM(char [, set ])
Wobei char
und set
kann jeder der Datentypen CHAR
sein , VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, oder NCLOB
.
RTRIM
entfernt vom rechten Ende von char
alle in set
enthaltenen Zeichen . Wenn Sie set
nicht angeben , dann ist es standardmäßig ein einzelnes Leerzeichen.
Beispiel
Hier ist ein Beispiel:
SELECT RTRIM('Cat ')
FROM DUAL;
Ergebnis:
RTRIM('CAT') _______________ Cat
Hier habe ich nicht angegeben, welches/welche Zeichen gekürzt werden sollen, und so wurde jedes einzelne Leerzeichen aus dem rechten Teil der Zeichenfolge gekürzt.
Es ist nicht einfach, die Wirkung des obigen Beispiels zu erkennen.
Hier ist ein weiteres Beispiel, bei dem der String mit einem anderen String verkettet wird, während die Ausgabe mit dem ursprünglichen (ungekürzten) String verglichen wird:
SELECT 'Cat ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat ') || 'Food'
FROM DUAL;
Ergebnis:
'CAT'||'FOOD' ________________ Cat Food CatFood
Geben Sie ein Zeichen an
In diesem Beispiel gebe ich ein zu kürzendes Zeichen an. Dies macht es einfacher, den Effekt zu sehen:
SELECT RTRIM('...Cat...', '.')
FROM DUAL;
Ergebnis:
RTRIM('...CAT...','.') _________________________ ...Cat
Wir können also sehen, dass das Zeichen von der rechten Seite getrimmt wurde, aber nicht von der linken Seite. Um die linke Seite zu trimmen, verwenden Sie LTRIM()
oder TRIM()
.
Beachten Sie, dass RTRIM()
trimmt nur die Figur/en im Set, bis es eine Figur gibt, die nicht im Set ist. Hier ist ein Beispiel dafür, was ich meine:
SELECT RTRIM('Cat...B...', '.')
FROM DUAL;
Ergebnis:
RTRIM('CAT...B...','.') __________________________ Cat...B
Wenn wir jedoch B
einfügen in der Menge erhalten wir ein anderes Ergebnis:
SELECT RTRIM('Cat...B...', '.B')
FROM DUAL;
Ergebnis:
RTRIM('CAT...B...','.B') ___________________________ Cat
Datenbankbeispiel
Hier ist ein Beispiel für das Trimmen des rechten Teils der Werte in einer Datenbankspalte:
SELECT
country_name,
RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Ergebnis:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina Argenti Australia Australi Belgium Belgium Brazil Brazil Canada Canad
Nullwerte
Wenn irgendein Argument null
ist das Ergebnis ist null
:
SET NULL 'null';
SELECT
RTRIM(null, 3),
RTRIM('Cat ', null),
RTRIM(null, null)
FROM DUAL;
Ergebnis:
RTRIM(NULL,3) RTRIM('CAT',NULL) RTRIM(NULL,NULL) ________________ ____________________ ___________________ 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 zweites Argument führt zu null
:
SET NULL 'null';
SELECT RTRIM('Cat ', '')
FROM DUAL;
Ergebnis:
RTRIM('CAT','') __________________ null
Aber das Hinzufügen eines einzelnen Leerzeichens zum leeren String ändert dies und schneidet alle Leerzeichen von der rechten Seite des Strings ab:
SELECT RTRIM('Cat ', ' ')
FROM DUAL;
Ergebnis:
RTRIM('CAT','') __________________ Cat
Falsche Argumentanzahl
Aufruf von RTRIM()
ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT RTRIM()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT RTRIM() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT RTRIM('Cat', 1, '>')
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT RTRIM('Cat', 1, '>') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: