- Kategorien:
Zeichenfolgen- und Binärfunktionen (Allgemein)
LTRIM¶
Entfernt führende Zeichen, einschließlich Leerzeichen, aus einer Zeichenfolge.
Syntax¶
LTRIM( <expr> [, <characters> ] )
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 | +---------------------------+
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] | -----------------------------+------------------------------------+
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' ) ;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< | | +-----------------------------------+----------------------------------+