카테고리:

문자열 및 이진 함수 (일반)

LTRIM

화이트스페이스 등 선행 문자를 문자열에서 제거합니다.

참고 항목:

RTRIM , TRIM

구문

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

인자

expr

트리밍할 문자열 식입니다.

characters

expr 의 왼쪽에서 제거할 하나 이상의 문자입니다.

기본값은 ' ' (단일 공백 문자)입니다. 즉, 문자를 지정하지 않으면 공백만 제거됩니다.

사용법 노트

  • characters 의 문자는 임의의 순서로 지정할 수 있습니다.

  • 화이트스페이스를 제거하려면 인자에 문자를 명시적으로 포함해야 합니다. 예를 들어, ' $.' 는 입력 문자열에서 모든 선행 공백, 달러 기호, 마침표를 제거합니다.

    이는 다른 화이트스페이스 문자(탭 문자, 줄의 끝 문자 등)를 제거하지 않는다는 점에 유의하십시오. 이러한 문자 또한 명시적으로 지정되어야 합니다.

데이터 정렬 세부 정보

데이터 정렬은 선택적 두 번째 인자가 생략되거나 상수 화이트스페이스만 포함된 경우 지원됩니다.

반환된 값의 데이터 정렬 사양은 첫 번째 인자의 데이터 정렬 사양과 동일합니다.

문자열에서 선행 ‘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