In Oracle das LTRIM()
Mit dieser Funktion können Sie den linken Teil einer Zeichenfolge trimmen. Standardmäßig werden Leerzeichen entfernt, aber Sie können optional ein anderes Zeichen oder andere Zeichen zum Trimmen angeben.
Syntax
Die Syntax lautet wie folgt:
LTRIM(char [, set ])
Wobei char
und set
kann jeder der Datentypen CHAR
sein , VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, oder NCLOB
.
LTRIM
entfernt vom linken Ende von char
alle in set
enthaltenen Zeichen . Wenn Sie set
nicht angeben , dann ist es standardmäßig ein einzelnes Leerzeichen.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT LTRIM(' Cat')
FROM DUAL;
Ergebnis:
LTRIM('CAT') _______________ Cat
In diesem Fall habe ich nicht angegeben, welche(s) Zeichen entfernt werden sollen, und so wurde jedes einzelne Leerzeichen aus dem linken Teil der Zeichenfolge entfernt.
Hier ist es noch einmal im Vergleich zum ursprünglichen (nicht aufgefüllten) String:
SELECT ' Cat'
FROM DUAL
UNION ALL
SELECT LTRIM(' Cat')
FROM DUAL;
Ergebnis:
'CAT' ___________ Cat Cat
Geben Sie ein Zeichen an
In diesem Beispiel gebe ich ein zu kürzendes Zeichen an:
SELECT LTRIM('...Cat...', '.')
FROM DUAL;
Ergebnis:
LTRIM('...CAT...','.') _________________________ Cat...
Wir können also sehen, dass das Zeichen von der linken Seite getrimmt wurde, aber nicht von der rechten Seite. Um die rechte Seite zu trimmen, verwenden Sie RTRIM()
oder TRIM()
.
Beachten Sie, dass LTRIM()
trimmt nur die Figur/en im Set, bis es eine Figur gibt, die nicht im Set ist. Hier ist ein Beispiel dafür, was ich meine:
SELECT LTRIM('...A...Cat', '.')
FROM DUAL;
Ergebnis:
LTRIM('...A...CAT','.') __________________________ A...Cat
Wenn wir jedoch A
einfügen in der Menge erhalten wir ein anderes Ergebnis:
SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;
Ergebnis:
LTRIM('...A...CAT','.A') ___________________________ Cat
Datenbankbeispiel
Hier ist ein Beispiel für das Trimmen des linken Teils der Werte in einer Datenbankspalte:
SELECT
country_name,
LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Ergebnis:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina gentina Australia ustralia Belgium Belgium Brazil Brazil Canada Canada
Nullwerte
Wenn eines der Argumente null
ist das Ergebnis ist null
:
SET NULL 'null';
SELECT
LTRIM(null, 3),
LTRIM(' Cat', null),
LTRIM(null, null)
FROM DUAL;
Ergebnis:
LTRIM(NULL,3) LTRIM('CAT',NULL) LTRIM(NULL,NULL) ________________ ____________________ ___________________ null null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Leere Strings trimmen
Das Übergeben einer leeren Zeichenfolge als zweites Argument führt zu null
:
SET NULL 'null';
SELECT LTRIM(' Cat', '')
FROM DUAL;
Ergebnis:
LTRIM('CAT','') __________________ null
Aber das Hinzufügen eines einzelnen Leerzeichens zum leeren String ändert dies und schneidet alle Leerzeichen von der linken Seite des Strings ab:
SELECT LTRIM(' Cat', ' ')
FROM DUAL;
Ergebnis:
LTRIM('CAT','') __________________ Cat
Falsche Argumentanzahl
Aufruf von LTRIM()
ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT LTRIM()
FROM DUAL;
Ergebnis:
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:
Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT LTRIM('Cat', 1, '>')
FROM DUAL;
Ergebnis:
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: