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

BIT_TEST

説明

<x>の値をバイナリ形式に変換し、指定された<bits>位置の値を返します。<bits>は0から開始します(最右端のビット)。

<bits>に複数の値が含まれている場合、これらの位置の値はAND演算子を使用して結合され、最終的な結果が返されます。

<bits>内のいずれかの値が負の値であるか、<x>の総ビット数を超えている場合、結果は0になります。

<x>でサポートされる整数型:TINYINT、SMALLINT、INT、BIGINT、LARGEINT。

エイリアス

  • BIT_TEST_ALL

構文

BIT_TEST(<x>, <bits>[, <bits> ... ])

パラメータ

  • <x>
  • <bits>

Return Value

指定された位置の値を返します。

Examples

  1. Example 1

    select BIT_TEST(43, 1), BIT_TEST(43, -1), BIT_TEST(43, 2), BIT_TEST(43, 0, 1, 3, 5), BIT_TEST(43, 0, 1, 3, 5, 2);
    +-----------------+------------------+-----------------+--------------------------+-----------------------------+
    | BIT_TEST(43, 1) | BIT_TEST(43, -1) | BIT_TEST(43, 2) | BIT_TEST(43, 0, 1, 3, 5) | BIT_TEST(43, 0, 1, 3, 5, 2) |
    +-----------------+------------------+-----------------+--------------------------+-----------------------------+
    | 1 | 0 | 0 | 1 | 0 |
    +-----------------+------------------+-----------------+--------------------------+-----------------------------+

43のバイナリ表現は「101011」であるため、BIT_TEST(43, 1)は1を返し、BIT_TEST(43, 2)は0を返し、BIT_TEST(43, 0, 1, 3, 5)は1を返します。 BIT_TEST(43, 0, 1, 3, 5, 2)は0を返します。 2. NULL引数

```sql
select BIT_TEST(NULL, 1), BIT_TEST(43, NULL), BIT_TEST(NULL, NULL);
```
```text
+-------------------+--------------------+----------------------+
| BIT_TEST(NULL, 1) | BIT_TEST(43, NULL) | BIT_TEST(NULL, NULL) |
+-------------------+--------------------+----------------------+
| NULL | NULL | NULL |
+-------------------+--------------------+----------------------+
```