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
- 基本的な使用方法(開始位置を指定)
SELECT sub_binary(x'61626331', 2);
+--------------------------------------------------------+
| sub_binary(x'61626331', 2) |
+--------------------------------------------------------+
| 0x626331 |
+--------------------------------------------------------+
- 負の位置を使用する
SELECT sub_binary(x'61626331', -2);
+----------------------------------------------------------+
| sub_binary(x'61626331', -2) |
+----------------------------------------------------------+
| 0x6331 |
+----------------------------------------------------------+
- positionが0の場合
SELECT sub_binary(x'61626331', 0);
+--------------------------------------------------------+
| sub_binary(x'61626331', 0) |
+--------------------------------------------------------+
| 0x |
+--------------------------------------------------------+
- 位置がバイナリ長を超えています
SELECT sub_binary(x'61626331', 5);
+--------------------------------------------------------+
| sub_binary(x'61626331', 5) |
+--------------------------------------------------------+
| 0x |
+--------------------------------------------------------+
- length パラメータの指定
SELECT sub_binary(x'61626331646566', 2, 2);
+--------------------------------------------------------+
| sub_binary(x'61626331646566', 2, 2) |
+--------------------------------------------------------+
| 0x6263 |
+--------------------------------------------------------+