sql >> Database teknologi >  >> RDS >> Oracle

RTRIM() Funktion i Oracle

I Oracle er RTRIM() funktionen giver dig mulighed for at trimme den højre del af en streng. Som standard trimmer det hvidt mellemrum, men du kan valgfrit angive et eller flere andre tegn, der skal trimmes.

Syntaks

Syntaksen ser sådan ud:

RTRIM(char [, set ])

Hvor char og set kan være enhver af datatyperne CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB eller NCLOB .

RTRIM fjerner fra højre ende af char alle tegn indeholdt i set . Hvis du ikke angiver set , så er det som standard et enkelt tomt.

Eksempel

Her er et eksempel:

SELECT RTRIM('Cat                 ')
FROM DUAL;

Resultat:

   RTRIM('CAT') 
_______________ 
Cat            

Her specificerede jeg ikke hvilke tegn, der skulle trimmes, og så hver enkelt blank blev trimmet fra den højre del af strengen.

Det er ikke let at se effekten af ​​ovenstående eksempel.

Her er et andet eksempel, hvor strengen er sammenkædet med en anden streng, mens outputtet sammenlignes med den originale (utrimmede) streng:

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

Resultat:

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

Angiv et tegn

I dette eksempel angiver jeg et tegn, der skal trimmes. Dette gør det nemmere at se effekten:

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

Resultat:

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

Så vi kan se, at karakteren blev trimmet fra højre side, men ikke venstre side. For at trimme venstre side, brug LTRIM() eller TRIM() .

Bemærk at RTRIM() trimmer kun karakteren/erne i sættet, indtil der er en karakter, der ikke er i sættet. Her er et eksempel på, hvad jeg mener:

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

Resultat:

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

Men hvis vi inkluderer B i sættet, så får vi et andet resultat:

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

Resultat:

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

Databaseeksempel

Her er et eksempel på trimning af den højre del af værdierne i en databasekolonne:

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       

Nul-værdier

Hvis et argument er null resultatet er 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 returnerer SQLcl og SQL*Plus et tomt mellemrum, når null opstår som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Trimning af tomme strenge

At sende en tom streng som det andet argument resulterer i null :

SET NULL 'null';

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

Resultat:

   RTRIM('CAT','') 
__________________ 
null              

Men tilføjelse af et enkelt mellemrum til den tomme streng ændrer det, og trimmer eventuelle tomme mellemrum fra højre for strengen:

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

Resultat:

   RTRIM('CAT','') 
__________________ 
Cat               

Forkert antal argumenter

Kalder RTRIM() uden at sende nogen argumenter returnerer en fejl:

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:

Og at sende det forkerte antal argumenter resulterer i en fejl:

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. Jeg vil hente data fra forskellige tabelnavne ved hjælp af postgresql-funktionen

  2. Sortering af varchar-felt numerisk i MySQL

  3. Gruppér efter værdier, der er i rækkefølge

  4. Ændre en funktion med tabelværdi i SQL Server