カテゴリ:

文字列とバイナリ関数 (一般)

LTRIM

空白を含む、先頭の文字を文字列から削除します。

こちらもご覧ください:

RTRIMTRIM

構文

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

引数

expr

削除される文字列式です。

characters

expr の左側から削除する1つ以上の文字です。

デフォルト値は ' ' (単一の空白文字)です。つまり、文字が指定されていない場合、空白のみが削除されます。

使用上の注意

  • characters の文字は任意の順序に指定できます。

  • 空白を削除するには、文字を引数に明示的に含める必要があります。例えば、 ' $.' は、入力文字列からすべての先行空白スペース、ドル記号、ピリオドを削除します。

    この場合、明示的に指定する必要がある他の空白文字(タブ文字、行末文字など)は削除されません。

照合の詳細

オプションの2番目の引数が省略されている場合、または定数の空白のみが含まれている場合は、照合がサポートされます。

戻り値の照合指定は、最初の引数の照合指定と同じです。

文字列から、先頭の「0」および「#」文字を削除します。

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

非ASCII 文字の文字列を含み、文字列から、先頭の空白スペースを削除します。この例では、文字列 > および < で文字を囲み、空白を視覚化します。

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

この例は前の例と似ていますが、空白文字だけでなく「空白」文字が含まれています。具体的には、これはCプログラミング言語が「空白」と見なす6文字を使用します。

テーブルを作成して入力します。

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

出力はこちらです(当然のことながら、空白以外の空白文字により、この出力は少し読みにくくなります)。

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