sql >> Databasteknik >  >> RDS >> Oracle

RTRIM() Funktion i Oracle

I Oracle, RTRIM() funktionen låter dig trimma den högra delen av en sträng. Som standard trimmar det vitt utrymme, men du kan valfritt ange ett eller flera olika tecken att trimma.

Syntax

Syntaxen ser ut så här:

RTRIM(char [, set ])

Där char och set kan vara vilken som helst av datatyperna CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , eller NCLOB .

RTRIM tar bort från den högra änden av char alla tecken som finns i set . Om du inte anger set , då förinställs det till ett enda tomt.

Exempel

Här är ett exempel:

SELECT RTRIM('Cat                 ')
FROM DUAL;

Resultat:

   RTRIM('CAT') 
_______________ 
Cat            

Här angav jag inte vilka tecken som skulle trimmas, så varje enskilt blankt trimmades från den högra delen av strängen.

Det är inte lätt att se effekten av exemplet ovan.

Här är ett annat exempel, där strängen sammanfogas med en annan sträng, samtidigt som utdata jämförs med den ursprungliga (otrimmade) strängen:

SELECT 'Cat     ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat     ') || 'Food'
FROM DUAL;

Resultat:

   'CAT'||'FOOD' 
________________ 
Cat     Food     
CatFood         

Ange ett tecken

I det här exemplet anger jag ett tecken som ska trimmas. Detta gör det lättare att se effekten:

SELECT RTRIM('...Cat...', '.')
FROM DUAL;

Resultat:

   RTRIM('...CAT...','.') 
_________________________ 
...Cat                    

Så vi kan se att karaktären trimmades från höger sida men inte från vänster sida. För att trimma vänster sida, använd LTRIM() eller TRIM() .

Observera att RTRIM() trimmar bara tecknet/tecken i uppsättningen tills det finns en karaktär som inte finns i uppsättningen. Här är ett exempel på vad jag menar:

SELECT RTRIM('Cat...B...', '.')
FROM DUAL;

Resultat:

   RTRIM('CAT...B...','.') 
__________________________ 
Cat...B                   

Men om vi inkluderar B i setet får vi ett annat resultat:

SELECT RTRIM('Cat...B...', '.B')
FROM DUAL;

Resultat:

   RTRIM('CAT...B...','.B') 
___________________________ 
Cat                         

Databasexempel

Här är ett exempel på att trimma den högra delen av värdena i en databaskolumn:

SELECT 
    country_name,
    RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;

Resultat:

   COUNTRY_NAME     TRIMMED 
_______________ ___________ 
Argentina       Argenti     
Australia       Australi    
Belgium         Belgium     
Brazil          Brazil      
Canada          Canad       

Nullvärden

Om något argument är null resultatet är null :

SET NULL 'null';

SELECT 
    RTRIM(null, 3),
    RTRIM('Cat ', null),
    RTRIM(null, null)
FROM DUAL;

Resultat:

   RTRIM(NULL,3)    RTRIM('CAT',NULL)    RTRIM(NULL,NULL) 
________________ ____________________ ___________________ 
null             null                 null               

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Trimmar tomma strängar

Att skicka en tom sträng som det andra argumentet resulterar i null :

SET NULL 'null';

SELECT RTRIM('Cat   ', '')
FROM DUAL;

Resultat:

   RTRIM('CAT','') 
__________________ 
null              

Men att lägga till ett enstaka mellanslag i den tomma strängen ändrar det och trimmar alla tomma mellanslag från höger om strängen:

SELECT RTRIM('Cat ', ' ')
FROM DUAL;

Resultat:

   RTRIM('CAT','') 
__________________ 
Cat               

Inkorrekt antal argument

Anropar RTRIM() utan att skicka några argument returnerar ett fel:

SELECT RTRIM()
FROM DUAL;

Resultat:

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:

Och att skicka fel antal argument resulterar i ett fel:

SELECT RTRIM('Cat', 1, '>')
FROM DUAL;

Resultat:

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:

  1. skriv ut start- och slutdatum på en rad för kontinuerliga eller överlappande datumintervall i Oracle SQL

  2. Hitta det riktiga kolumnnamnet för ett alias som används i en vy?

  3. Utforska MySQL Binlog Server – Ripple

  4. Anslut SQL Server till SugarCRM