- 카테고리:
문자열 및 이진 함수 (일반)
SPLIT¶
주어진 구분 기호로 주어진 문자열을 분할하고 결과를 문자열 배열로 반환합니다.
소스 문자열에 연속적인 분할 문자열이 있거나 소스 문자열의 시작 또는 끝에 분할 문자열이 있으면 출력에 빈 문자열이 생성됩니다. 빈 구분 기호 문자열은 소스 문자열만 포함하는 배열을 생성합니다. 매개 변수 중 하나가 NULL인 경우, NULL이 반환됩니다.
결과는 반정형 데이터(예: FLATTEN 및 ARRAY_SIZE)에서 작동하는 함수 및 구문과 함께 사용할 수 있습니다.
- 참고 항목:
구문¶
SPLIT(<string>, <separator>)
인자¶
string
부분으로 분할할 텍스트입니다.
separator
문자열을 분할할 텍스트입니다.
반환¶
반환된 값의 데이터 타입은 ARRAY입니다.
데이터 정렬 세부 정보¶
이 함수는 다음 데이터 정렬 사양을 지원하지 않습니다.
pi
(구두점 구분 안 함).cs-ai
(대/소문자 구분, 악센트 구분 안 함).
출력 배열의 값은 데이터 정렬 사양을 포함하지 않으므로 추가 데이터 정렬 작업을 지원하지 않습니다.
참고
upper
또는 lower
데이터 정렬 지정자가 있는 열에 이 함수를 사용하려면 계정에서 2024_02 동작 변경 번들을 활성화 해야 합니다.
계정에서 이 번들을 활성화하려면 다음 문을 실행하십시오.
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
예¶
localhost IP 주소 127.0.0.1
을 네 부분으로 구성된 배열로 분할합니다.
SELECT SPLIT('127.0.0.1', '.'); +-------------------------+ | SPLIT('127.0.0.1', '.') | |-------------------------| | [ | | "127", | | "0", | | "0", | | "1" | | ] | +-------------------------+
구분 기호로서 세로선을 포함하는 문자열을 분할합니다(출력은 빈 문자열을 포함함).
SELECT SPLIT('|a||', '|'); +--------------------+ | SPLIT('|A||', '|') | |--------------------| | [ | | "", | | "a", | | "", | | "" | | ] | +--------------------+
LATERAL FLATTEN 구문을 사용하여 단일 문자열에서 여러 레코드를 생성하기 위해 SPLIT의 결과를 사용합니다. FLATTEN 은 VARIANT, OBJECT 또는 ARRAY 열을 사용하고 래터럴 뷰(즉, FROM 절에서 선행하는 다른 테이블을 참조하는 상관 관계를 포함하는 인라인 뷰)를 생성하는 테이블 함수입니다.
SELECT * FROM persons; ------+---------------------+ NAME | CHILDREN | ------+---------------------+ Mark | Marky,Mark Jr,Maria | John | Johnny,Jane | ------+---------------------+ SELECT name, C.value::string AS childName FROM persons, LATERAL FLATTEN(input=>split(children, ',')) C; ------+-----------+ NAME | CHILDNAME | ------+-----------+ John | Johnny | John | Jane | Mark | Marky | Mark | Mark Jr | Mark | Maria | ------+-----------+