본문으로 건너뛰기
최종 수정: 에

MAKE_SET

설명​

MAKE_SET 함수는 비트마스크(bit)를 기준으로 여러 문자열 매개변수에서 문자열을 선택하여 결합합니다. 대응하는 비트가 1인 모든 문자열을 포함하는 쉼표로 구분된 문자열 집합을 반환합니다.

동작은 MySQL의 MAKE_SET과 동일합니다.

구문​

MAKE_SET(<bit>, <str1>[, <str2>, ...])

매개변수​

매개변수설명
<bit>비트마스크 값으로, 이진수의 각 비트는 선택할 문자열을 나타냅니다. 타입: BIGINT
<str1>, <str2>, ...결합할 문자열 매개변수(가변 인자). 타입: VARCHAR

반환 값​

VARCHAR 타입의 쉼표로 구분된 문자열 집합을 반환합니다.

특수한 경우:

  • <bit>가 NULL이면 NULL을 반환합니다.
  • 값이 1인 비트에 대응하는 문자열이 NULL이면 해당 문자열을 건너뜁니다.
  • 대응하는 비트가 매개변수 범위를 벗어나면 해당 비트를 무시합니다.
  • 이진수의 비트는 오른쪽에서 왼쪽으로 세며, 비트 0은 첫 번째 문자열 매개변수에 대응합니다.
  • <bit>가 0이면 빈 문자열을 반환합니다.

예제​

  1. 기본 사용법: bit = 3(이진수 011, 비트 0과 비트 1 선택)
SELECT make_set(3, 'dog', 'cat', 'bird');
+-----------------------------------+
| make_set(3, 'dog', 'cat', 'bird') |
+-----------------------------------+
| dog,cat |
+-----------------------------------+
  1. NULL 값 건너뛰기: bit = 5(이진수 101, 비트 0과 비트 2 선택)
SELECT make_set(5, NULL, 'warm', 'hot');
+---------------------------------+
| make_set(5, NULL, 'warm', 'hot') |
+---------------------------------+
| hot |
+---------------------------------+
  1. bit가 0인 경우: 문자열을 선택하지 않음
SELECT make_set(0, 'hello', 'world');
+--------------------------------+
| make_set(0, 'hello', 'world') |
+--------------------------------+
| |
+--------------------------------+
  1. NULL 값 처리
SELECT make_set(NULL, 'a', 'b', 'c');
+-------------------------------+
| make_set(NULL, 'a', 'b', 'c') |
+-------------------------------+
| NULL |
+-------------------------------+
  1. 비트가 매개변수 범위를 벗어나는 경우: bit = 15(이진수 1111, 비트 4개를 선택하지만 매개변수는 2개뿐임)
SELECT make_set(15, 'first', 'second');
+-------------------------------------+
| make_set(15, 'first', 'second') |
+-------------------------------------+
| first,second |
+-------------------------------------+
  1. UTF-8 특수 문자 지원
SELECT make_set(7, 'ṭṛì', 'ḍḍumai', 'test');
+------------------------------------------+
| make_set(7, 'ṭṛì', 'ḍḍumai', 'test') |
+------------------------------------------+
| ṭṛì,ḍḍumai,test |
+------------------------------------------+

키워드​

MAKE_SET