I Oracle, LTRIM()
funktionen låter dig trimma den vänstra 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:
LTRIM(char [, set ])
Där char
och set
kan vara vilken som helst av datatyperna CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, eller NCLOB
.
LTRIM
tar bort från den vänstra ä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 enkelt exempel att visa:
SELECT LTRIM(' Cat')
FROM DUAL;
Resultat:
LTRIM('CAT') _______________ Cat
I det här fallet angav jag inte vilka tecken som skulle trimmas, så varje enskild blank trimmades från den vänstra delen av strängen.
Här är den igen jämfört med den ursprungliga (icke vadderade) strängen:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Resultat:
'CAT' ___________ Cat Cat
Ange ett tecken
I det här exemplet anger jag ett tecken som ska trimmas:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Resultat:
LTRIM('...CAT...','.') _________________________ Cat...
Så vi kan se att karaktären trimmades från vänster sida men inte höger sida. För att trimma den högra sidan, använd RTRIM()
eller TRIM()
.
Observera att LTRIM()
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 LTRIM('...A...Cat', '.')
FROM DUAL;
Resultat:
LTRIM('...A...CAT','.') __________________________ A...Cat
Men om vi inkluderar A
i setet får vi ett annat resultat:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Resultat:
LTRIM('...A...CAT','.A') ___________________________ Cat
Databasexempel
Här är ett exempel på att trimma den vänstra delen av värdena i en databaskolumn:
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
Nullvärden
Om något av argumenten är null
resultatet är 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 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 LTRIM(' Cat', '')
FROM DUAL;
Resultat:
LTRIM('CAT','') __________________ null
Men att lägga till ett enstaka mellanslag i den tomma strängen ändrar det och trimmar alla tomma mellanslag från vänster om strängen:
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Resultat:
LTRIM('CAT','') __________________ Cat
Inkorrekt antal argument
Anropar LTRIM()
utan att skicka några argument returnerar ett fel:
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:
Och att skicka fel antal argument resulterar i ett fel:
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: