I Oracle er LTRIM() funktionen giver dig mulighed for at trimme den venstre 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:
LTRIM(char [, set ])
Hvor char og set kan være enhver af datatyperne CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB eller NCLOB .
LTRIM fjerner fra venstre 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 simpelt eksempel til at demonstrere:
SELECT LTRIM(' Cat')
FROM DUAL; Resultat:
LTRIM('CAT')
_______________
Cat I dette tilfælde specificerede jeg ikke hvilke tegn, der skulle trimmes, og så hver enkelt blank blev trimmet fra den venstre del af strengen.
Her er den igen sammenlignet med den originale (ikke-polstrede) streng:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL; Resultat:
'CAT'
___________
Cat
Cat Angiv et tegn
I dette eksempel angiver jeg et tegn, der skal trimmes:
SELECT LTRIM('...Cat...', '.')
FROM DUAL; Resultat:
LTRIM('...CAT...','.')
_________________________
Cat...
Så vi kan se, at karakteren blev trimmet fra venstre side, men ikke højre side. For at trimme højre side, brug RTRIM() eller TRIM() .
Bemærk at LTRIM() 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 LTRIM('...A...Cat', '.')
FROM DUAL; Resultat:
LTRIM('...A...CAT','.')
__________________________
A...Cat
Men hvis vi inkluderer A i sættet, så får vi et andet resultat:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL; Resultat:
LTRIM('...A...CAT','.A')
___________________________
Cat Databaseeksempel
Her er et eksempel på trimning af den venstre del af værdierne i en databasekolonne:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY; Resultat:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Nul-værdier
Hvis nogen af argumenterne er null resultatet er null :
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL; Resultat:
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(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 LTRIM(' Cat', '')
FROM DUAL; Resultat:
LTRIM('CAT','')
__________________
null Men tilføjelse af et enkelt mellemrum til den tomme streng ændrer det, og trimmer eventuelle tomme mellemrum fra venstre for strengen:
SELECT LTRIM(' Cat', ' ')
FROM DUAL; Resultat:
LTRIM('CAT','')
__________________
Cat Forkert antal argumenter
Kalder LTRIM() uden at sende nogen argumenter returnerer en fejl:
SELECT LTRIM()
FROM DUAL; Resultat:
Error starting at line : 1 in command - SELECT LTRIM() 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 LTRIM('Cat', 1, '>')
FROM DUAL; Resultat:
Error starting at line : 1 in command -
SELECT LTRIM('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: