メインコンテンツまでスキップ
バージョン: 26.x

SUB_BINARY

説明

SUB_BINARY関数は、VARBINARY値からバイナリのサブシーケンスを抽出します。抽出する開始位置とバイト長を指定できます。バイナリ内の最初のバイト位置は1です。

構文

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

パラメータ

Parameterデスクリプション
<bin>ソースバイナリ値。型: VARBINARY
<pos>開始バイト位置、負の値も可能。型: INT
<len>オプションパラメータ、抽出するバイト数。型: INT

Return value

VARBINARY型を返し、抽出されたバイナリサブシーケンスを表します。

特殊なケース:

  • いずれかのパラメータがNULLの場合、NULLを返します。
  • posが0の場合、空のバイナリを返します。
  • posが負の場合、バイナリの末尾から逆方向にカウントします。
  • posがバイナリの長さを超える場合、空のバイナリを返します。
  • lenが指定されていない場合、posからバイナリの末尾までのすべてのバイトを返します。

Example

  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. positionが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. length パラメータの指定
SELECT sub_binary(x'61626331646566', 2, 2);
+--------------------------------------------------------+
| sub_binary(x'61626331646566', 2, 2) |
+--------------------------------------------------------+
| 0x6263 |
+--------------------------------------------------------+