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

SUB_BINARY

설명​

SUB_BINARY 함수는 VARBINARY 값에서 바이너리 부분 시퀀스를 추출합니다. 추출을 시작할 위치와 추출할 바이트 수를 지정할 수 있습니다. 바이너리의 첫 번째 바이트 위치는 1입니다.

구문​

sub_binary(<bin>, <pos> [, <len>])

매개변수​

매개변수설명
<bin>원본 바이너리 값. 타입: VARBINARY
<pos>시작 바이트 위치. 음수일 수 있습니다. 타입: INT
<len>선택적 매개변수. 추출할 바이트 수. 타입: INT

반환값​

추출된 바이너리 부분 시퀀스를 나타내는 VARBINARY 타입의 값을 반환합니다.

특수한 경우:

  • 매개변수 중 하나라도 NULL이면 NULL을 반환합니다.
  • pos가 0이면 빈 바이너리를 반환합니다.
  • pos가 음수이면 바이너리 끝에서부터 역방향으로 위치를 셉니다.
  • pos가 바이너리 길이를 초과하면 빈 바이너리를 반환합니다.
  • len을 지정하지 않으면 pos부터 바이너리 끝까지의 모든 바이트를 반환합니다.

예제​

  1. 기본 사용법(시작 위치 지정)
SELECT sub_binary(x'61626331', 2);
+--------------------------------------------------------+
| sub_binary(x'61626331', 2) |
+--------------------------------------------------------+
| 0x626331 |
+--------------------------------------------------------+
  1. 음수 위치 사용
SELECT sub_binary(x'61626331', -2);
+----------------------------------------------------------+
| sub_binary(x'61626331', -2) |
+----------------------------------------------------------+
| 0x6331 |
+----------------------------------------------------------+
  1. 위치가 0인 경우
SELECT sub_binary(x'61626331', 0);
+--------------------------------------------------------+
| sub_binary(x'61626331', 0) |
+--------------------------------------------------------+
| 0x |
+--------------------------------------------------------+
  1. 위치가 바이너리 길이를 초과하는 경우
SELECT sub_binary(x'61626331', 5);
+--------------------------------------------------------+
| sub_binary(x'61626331', 5) |
+--------------------------------------------------------+
| 0x |
+--------------------------------------------------------+
  1. 길이 매개변수 지정
SELECT sub_binary(x'61626331646566', 2, 2);
+--------------------------------------------------------+
| sub_binary(x'61626331646566', 2, 2) |
+--------------------------------------------------------+
| 0x6263 |
+--------------------------------------------------------+