Kategorien:

Zeichenfolgen- und Binärfunktionen (Allgemein)

LTRIM

Entfernt führende Zeichen, einschließlich Leerzeichen, aus einer Zeichenfolge.

Siehe auch:

RTRIM , TRIM

Syntax

LTRIM( <expr> [, <characters> ] )
Copy

Argumente

expr

Der zu kürzende Zeichenfolgenausdruck.

characters

Ein oder mehrere Zeichen, die auf der linken Seite von expr entfernt werden sollen.

Der Standardwert ist ' ' (ein einzelnes Leerzeichen); d. h. wenn keine Zeichen angegeben werden, werden nur Leerzeichen entfernt.

Nutzungshinweise

  • Die Zeichen in characters können in beliebiger Reihenfolge angegeben werden.

  • Um Leerzeichen zu entfernen, müssen die Zeichen explizit in das Argument aufgenommen werden. Beispielsweise entfernt ' $.' alle führenden Leerzeichen, Dollarzeichen und Punkte aus der Eingabezeichenfolge.

    Beachten Sie, dass dadurch keine anderen Leerzeichen (Tabulatorzeichen, Zeilenendezeichen usw.) entfernt werden, die ebenfalls explizit angegeben werden müssen.

Sortierungsdetails

Sortierung wird unterstützt, wenn das optionale zweite Argument weggelassen wird oder wenn es nur konstante Leerzeichen enthält.

Die Sortierungsspezifikation des zurückgegebenen Werts entspricht der Sortierungsspezifikation des ersten Arguments.

Beispiele

Entfernen führender „0“- und „#“-Zeichen aus einer Zeichenfolge:

SELECT LTRIM('#000000123', '0#');
+---------------------------+
| LTRIM('#000000123', '0#') |
|---------------------------|
| 123                       |
+---------------------------+
Copy

Entfernen Sie führende Leerzeichen aus Zeichenfolgen, einschließlich Zeichenfolgen mit Nicht-ASCII-Zeichen. In diesem Beispiel werden die Zeichenfolgen von >- und <-Zeichen eingeschlossen, um die Visualisierung der Leerzeichen zu erleichtern:

SELECT CONCAT('>', CONCAT(v, '<')), CONCAT('>', CONCAT(LTRIM(v), '<')) FROM tr;

-----------------------------+------------------------------------+
 concat('>', concat(v, '<')) | concat('>', concat(ltrim(v), '<')) |
-----------------------------+------------------------------------+
 >  <                        | ><                                 |
 >  asd  <                   | >asd  <                            |
 >  asd<                     | >asd<                              |
 >  éché, la lé  <           | >éché, la lé  <                    |
 > <                         | ><                                 |
 ><                          | ><                                 |
 >asd  <                     | >asd  <                            |
 [NULL]                      | [NULL]                             |
-----------------------------+------------------------------------+
Copy

Dieses Beispiel ähnelt dem vorherigen, enthält jedoch „Leerstellen“-Zeichen (Whitespace), die über das Leerzeichen (Blank) hinausgehen. Im Speziellen werden die 6 Zeichen verwendet, die von der Programmiersprache C als „Leerstellen“ angesehen werden:

Erstellen Sie eine Tabelle, und füllen Sie diese:

CREATE TABLE c_compatible_whitespace (whitespace_char VARCHAR);
INSERT INTO c_compatible_whitespace (whitespace_char) SELECT 
    CHR(32) || -- Blank
    CHR(13) || -- Carriage Return
    CHR(12) || -- Form Feed
    CHR(10) || -- Line Feed
    CHR(11) || -- Vertical Tab
    CHR(09)    -- tab (aka Horizontal Tab)
    ;

CREATE TABLE t1 (V VARCHAR);
INSERT INTO t1 (v) VALUES
   ('NoBlanks'),
   (' OneLeadingBlank'),
   ('OneTrailingBlank '),
   (' OneLeadingAndOneTrailingBlank ')
   ;
INSERT INTO t1 (v) SELECT 
    (CHR(09) || -- tab (aka Horizontal Tab)
     CHR(10) || -- Line Feed
     CHR(11) || -- Vertical Tab
     CHR(12) || -- Form Feed
     CHR(13) || -- Carriage Return
     CHR(32)    -- Blank 
      || 'Leading whitespace'
    )
   ;
Copy

Dies ist die Ausgabe (es überrascht nicht, dass durch einige der nicht leeren Leerstellen-Zeichen diese Ausgabe etwas schwer lesbar wird):

SELECT '>' || v || '<' AS Original,
       '>' || LTRIM(v, (SELECT whitespace_char FROM c_compatible_whitespace)) || '<' AS LTrimmed
    FROM t1;
+-----------------------------------+----------------------------------+
| ORIGINAL                          | LTRIMMED                         |
|-----------------------------------+----------------------------------|
| >NoBlanks<                        | >NoBlanks<                       |
| > OneLeadingBlank<                | >OneLeadingBlank<                |
| >OneTrailingBlank <               | >OneTrailingBlank <              |
| > OneLeadingAndOneTrailingBlank < | >OneLeadingAndOneTrailingBlank < |
| >	                                                                      | >Leading whitespace<             |
| 
 Leading whitespace<              |                                  |
+-----------------------------------+----------------------------------+
Copy