CONCAT_WS

CONCAT_WS (구분자 포함 연결)

두 개 이상의 문자열, 또는 두 개 이상의 바이너리 값을 연결하고, 첫 번째 인자를 그 뒤에 오는 문자열 사이의 구분자(delimiter)로 사용해요.

출처: Snowflake SQL Reference - CONCAT_WS

본문

참고: 일부 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                   |
+-----------------------+

더 알아보기