In Oracle, de LTRIM()
Met deze functie kunt u het linkerdeel van een tekenreeks inkorten. 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:
LTRIM(char [, set ])
Waar char
en set
kan elk van de gegevenstypen zijn CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, of NCLOB
.
LTRIM
verwijdert vanaf het linkeruiteinde van char
alle tekens in set
. Als u set
. niet opgeeft , dan is het standaard een enkele spatie.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT LTRIM(' Cat')
FROM DUAL;
Resultaat:
LTRIM('CAT') _______________ Cat
In dit geval heb ik niet gespecificeerd welk(e) teken(s) ik moest bijsnijden, en dus werd elke afzonderlijke spatie bijgesneden vanaf het linkergedeelte van de tekenreeks.
Hier is het weer in vergelijking met de originele (niet-opgevulde) snaar:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Resultaat:
'CAT' ___________ Cat Cat
Geef een karakter op
In dit voorbeeld specificeer ik een teken om te trimmen:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Resultaat:
LTRIM('...CAT...','.') _________________________ Cat...
We kunnen dus zien dat het personage aan de linkerkant is bijgesneden, maar niet aan de rechterkant. Gebruik RTRIM()
. om de rechterkant bij te snijden of TRIM()
.
Merk op dat LTRIM()
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 LTRIM('...A...Cat', '.')
FROM DUAL;
Resultaat:
LTRIM('...A...CAT','.') __________________________ A...Cat
Als we echter A
in de set, dan krijgen we een ander resultaat:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Resultaat:
LTRIM('...A...CAT','.A') ___________________________ Cat
Databasevoorbeeld
Hier is een voorbeeld van het bijsnijden van het linkerdeel van de waarden in een databasekolom:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Resultaat:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Null-waarden
Als een van de argumenten null
. is het resultaat is null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Resultaat:
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(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 LTRIM(' Cat', '')
FROM DUAL;
Resultaat:
LTRIM('CAT','') __________________ null
Maar door een enkele spatie aan de lege tekenreeks toe te voegen, verandert dat, en worden eventuele lege spaties aan de linkerkant van de tekenreeks bijgesneden:
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Resultaat:
LTRIM('CAT','') __________________ Cat
Onjuist aantal argumenten
LTRIM()
. aanroepen zonder het doorgeven van argumenten geeft een fout:
SELECT LTRIM()
FROM DUAL;
Resultaat:
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:
En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:
SELECT LTRIM('Cat', 1, '>')
FROM DUAL;
Resultaat:
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: