- 카테고리:
문자열 및 이진 함수 (일반) , 테이블 함수
STRTOK_SPLIT_TO_TABLE¶
주어진 구분 기호 세트로 문자열을 토큰화하고 결과를 행으로 평면화합니다.
- 참고 항목:
구문¶
STRTOK_SPLIT_TO_TABLE(<string> [,<delimiter_list>])
인자¶
필수:
string
토큰화할 텍스트입니다.
선택 사항:
delimiter_list
구분 기호 세트입니다. 선택 사항입니다. 기본값은 단일 공백 문자입니다.
반환¶
이는 테이블을 반환합니다.
반환된 행은 고정된 열 세트로 구성됩니다.
+-----+-------+-------+ | SEQ | INDEX | VALUE | |-----+-------+-------|
- SEQ:
입력 레코드와 연결된 고유한 시퀀스 번호입니다. 시퀀스는 갭이 없거나 특정 방식으로 정렬된다고 보장되지 않습니다.
- INDEX:
요소의 인덱스입니다. 1부터 시작합니다.
- VALUE:
평면화된 배열의 요소 값입니다.
참고
이 함수의 데이터 소스로서 사용된 원본(상관) 테이블의 열에도 액세스할 수 있습니다. 원본 테이블의 단일 행으로 인해 평면화 뷰에 여러 행이 생성된 경우, 이 입력 행의 값은 STRTOK_SPLIT_TO_TABLE에 의해 생성된 행 수와 일치하도록 복제됩니다.
예¶
다음은 상수 입력에 대한 간단한 예입니다.
SELECT table1.value FROM table(strtok_split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
다음 두 가지 예에서는 아래에 만들어진 테이블과 데이터를 사용합니다.
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a b'), ('cde'), ('f|g'), ('');이 예는 함수를 상관 테이블로 사용하는 방법을 보여줍니다.
SELECT * FROM splittable, LATERAL STRTOK_SPLIT_TO_TABLE(splittable.v, ' ') ORDER BY SEQ, INDEX; +-----+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-----+-----+-------+-------| | a b | 1 | 1 | a | | a b | 1 | 2 | b | | cde | 2 | 1 | cde | | f|g | 3 | 1 | f|g | +-----+-----+-------+-------+이 예는 여러 구분 기호를 지정한다는 점을 제외하고는 이전 예와 동일합니다.
SELECT * FROM splittable, LATERAL STRTOK_SPLIT_TO_TABLE(splittable.v, ' |') ORDER BY SEQ, INDEX; +-----+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-----+-----+-------+-------| | a b | 1 | 1 | a | | a b | 1 | 2 | b | | cde | 2 | 1 | cde | | f|g | 3 | 1 | f | | f|g | 3 | 2 | g | +-----+-----+-------+-------+