に最終更新
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
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 を返します。 - 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 |
+-------------------+--------------------+----------------------+