メインコンテンツまでスキップ
に最終更新

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>

戻り値​

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

使用例​

  1. 使用例 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 引数
    select BIT_TEST(NULL, 1), BIT_TEST(43, NULL), BIT_TEST(NULL, NULL);
    +-------------------+--------------------+----------------------+
    | BIT_TEST(NULL, 1) | BIT_TEST(43, NULL) | BIT_TEST(NULL, NULL) |
    +-------------------+--------------------+----------------------+
    | NULL | NULL | NULL |
    +-------------------+--------------------+----------------------+