- 카테고리:
문자열 및 이진 함수 (일반) , 테이블 함수
SPLIT_TO_TABLE¶
이 테이블 함수는 (지정된 구분 기호를 기준으로) 문자열을 분할하고 결과를 행으로 평면화합니다.
- 참고 항목:
구문¶
SPLIT_TO_TABLE(<string>, <delimiter>)
인자¶
string
분할할 텍스트입니다.
delimiter
문자열을 분할할 텍스트입니다.
반환¶
반환된 값은 테이블입니다.
반환된 행은 고정된 열 세트로 구성됩니다.
+-----+-------+-------+ | SEQ | INDEX | VALUE | |-----+-------+-------|
- SEQ:
입력 레코드와 연결된 고유한 시퀀스 번호입니다. 시퀀스는 갭이 없거나 특정 방식으로 정렬된다고 보장되지 않습니다.
- INDEX:
요소의 인덱스입니다. 1부터 시작합니다.
- VALUE:
평면화된 배열의 요소 값입니다.
참고
쿼리는 이 함수의 데이터 소스 역할을 하는 원본(상관) 테이블의 열에도 액세스할 수 있습니다. 원본 테이블의 단일 행으로 인해 평면화 뷰에 여러 행이 생성된 경우, 이 입력 행의 값은 SPLIT_TO_TABLE에 의해 생성된 행 수와 일치하도록 복제됩니다.
예¶
다음은 상수 입력에 대한 간단한 예입니다.
SELECT table1.value FROM table(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.c'), ('d'), ('');이 쿼리는 함수를 상관 테이블로 사용하는 방법을 보여줍니다.
SELECT * FROM splittable, LATERAL SPLIT_TO_TABLE(splittable.v, '.') ORDER BY SEQ, INDEX; +-------+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-------+-----+-------+-------| | a.b.c | 1 | 1 | a | | a.b.c | 1 | 2 | b | | a.b.c | 1 | 3 | c | | d | 2 | 1 | d | | | 3 | 1 | | +-------+-----+-------+-------+