CONCAT_WS
CONCAT_WS (구분자 포함 연결)
두 개 이상의 문자열, 또는 두 개 이상의 바이너리 값을 연결하고, 첫 번째 인자를 그 뒤에 오는 문자열 사이의 구분자(delimiter)로 사용해요.
본문
참고: 일부 CONCAT_WS 함수 구현과 달리, Snowflake의 CONCAT_WS 함수는 NULL 값을 건너뛰지 않아요.
참고: CONCAT
구문
CONCAT_WS( <separator> , <expression> [ , <expression> ... ] )
인자
separator
구분자는 expression과 동일한 요구 사항을 충족해야 해요.
expression
입력 표현식은 전부 문자열이거나, 전부 바이너리 값이어야 해요.
반환 값
이 함수는 2번째부터 N번째 인자를 첫 번째 인자로 구분해 담은 VARCHAR 또는 BINARY 값을 반환해요.
어떤 인자라도 NULL이면 함수는 NULL을 반환해요.
반환 값의 데이터 타입은 입력 값의 데이터 타입과 같아요.
사용 시 참고 사항
-
GET_DDL 같은 메타데이터 함수는 입력으로 상수만 받아요. 연결된 입력은 오류를 발생시켜요.
-
CONCAT_WS는 마지막 인자 뒤가 아니라 인자 사이에 구분자를 넣어요. CONCAT_WS를 구분자 뒤에 인자 하나로만 호출하면 구분자가 추가되지 않아요.
정렬 규칙(collation) 세부 사항
-
모든 입력 인자의 정렬 규칙 사양은 서로 호환되어야 해요.
-
함수 결과의 정렬 규칙은 입력 중 우선순위가 가장 높은 정렬 규칙이에요.
예시
CONCAT_WS 함수를 호출해 세 문자열을 쉼표 구분자로 연결해요.
SELECT CONCAT_WS(',', 'one', 'two', 'three');
+---------------------------------------+
| CONCAT_WS(',', 'ONE', 'TWO', 'THREE') |
|---------------------------------------|
| one,two,three |
+---------------------------------------+
다음 예시는 어떤 인자가 NULL이면 함수가 NULL을 반환함을 보여줘요.
SELECT CONCAT_WS(',', 'one', NULL, 'two');
+------------------------------------+
| CONCAT_WS(',', 'ONE', NULL, 'TWO') |
|------------------------------------|
| NULL |
+------------------------------------+
다음 예시는 연결할 문자열이 하나뿐일 때 CONCAT_WS 함수가 구분자를 추가하지 않음을 보여줘요.
SELECT CONCAT_WS(',', 'one');
+-----------------------+
| CONCAT_WS(',', 'ONE') |
|-----------------------|
| one |
+-----------------------+