Oracle
 sql >> Datenbank >  >> RDS >> Oracle

RTRIM()-Funktion in Oracle

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: