In Oracle, de RTRIM() functie stelt u in staat om het rechterdeel van een string in te korten. Standaard wordt witruimte bijgesneden, maar u kunt optioneel een ander teken of andere tekens opgeven om bij te snijden.
Syntaxis
De syntaxis gaat als volgt:
RTRIM(char [, set ])
Waar char en set kan elk van de gegevenstypen zijn CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , of NCLOB .
RTRIM verwijdert vanaf het rechteruiteinde van char alle tekens in set . Als u set . niet opgeeft , dan is het standaard een enkele spatie.
Voorbeeld
Hier is een voorbeeld:
SELECT RTRIM('Cat ')
FROM DUAL; Resultaat:
RTRIM('CAT')
_______________
Cat Hier heb ik niet gespecificeerd welk(e) teken(s) ik moest bijsnijden, en dus werd elke afzonderlijke spatie bijgesneden vanaf het rechterdeel van de tekenreeks.
Het is niet gemakkelijk om het effect van het bovenstaande voorbeeld te zien.
Hier is nog een voorbeeld, waarbij de string wordt samengevoegd met een andere string, terwijl de uitvoer wordt vergeleken met de originele (niet-getrimde) string:
SELECT 'Cat ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat ') || 'Food'
FROM DUAL; Resultaat:
'CAT'||'FOOD' ________________ Cat Food CatFood
Geef een karakter op
In dit voorbeeld geef ik een teken op om te trimmen. Dit maakt het gemakkelijker om het effect te zien:
SELECT RTRIM('...Cat...', '.')
FROM DUAL; Resultaat:
RTRIM('...CAT...','.')
_________________________
...Cat
We kunnen dus zien dat het personage aan de rechterkant is bijgesneden, maar niet aan de linkerkant. Gebruik LTRIM() . om de linkerkant bij te snijden of TRIM() .
Merk op dat RTRIM() snijdt alleen het teken/de tekens in de set-up bij totdat er een personage is dat niet in de set zit. Hier is een voorbeeld van wat ik bedoel:
SELECT RTRIM('Cat...B...', '.')
FROM DUAL; Resultaat:
RTRIM('CAT...B...','.')
__________________________
Cat...B
Als we echter B in de set, dan krijgen we een ander resultaat:
SELECT RTRIM('Cat...B...', '.B')
FROM DUAL; Resultaat:
RTRIM('CAT...B...','.B')
___________________________
Cat Databasevoorbeeld
Hier is een voorbeeld van het bijsnijden van het rechterdeel van de waarden in een databasekolom:
SELECT
country_name,
RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY; Resultaat:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina Argenti Australia Australi Belgium Belgium Brazil Brazil Canada Canad
Null-waarden
Als een argument null is het resultaat is null :
SET NULL 'null';
SELECT
RTRIM(null, 3),
RTRIM('Cat ', null),
RTRIM(null, null)
FROM DUAL; Resultaat:
RTRIM(NULL,3) RTRIM('CAT',NULL) RTRIM(NULL,NULL)
________________ ____________________ ___________________
null null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.
U kunt echter SET NULL . gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.
Lege snaren trimmen
Het doorgeven van een lege string als het tweede argument resulteert in null :
SET NULL 'null';
SELECT RTRIM('Cat ', '')
FROM DUAL; Resultaat:
RTRIM('CAT','')
__________________
null Maar door een enkele spatie aan de lege tekenreeks toe te voegen, verandert dat, en worden eventuele lege spaties aan de rechterkant van de tekenreeks bijgesneden:
SELECT RTRIM('Cat ', ' ')
FROM DUAL; Resultaat:
RTRIM('CAT','')
__________________
Cat Onjuist aantal argumenten
RTRIM() . aanroepen zonder het doorgeven van argumenten geeft een fout:
SELECT RTRIM()
FROM DUAL; Resultaat:
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:
En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:
SELECT RTRIM('Cat', 1, '>')
FROM DUAL; Resultaat:
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: