OceanBaseデータベースは、一般的な論理演算子をサポートしています。
論理演算子の概要
OceanBaseデータベースの現行バージョンでサポートされている論理演算子の詳細は、以下の表に示されています。
| 演算子 | 演算子 | 意味 |
|---|---|---|
NOT/! |
一元 | 論理非 |
AND/&& |
二項 | 論理積 |
OR/|| |
二項 | 論理和 |
XOR |
複数 | 論理排他的論理和 |
説明
SQLにおいて、すべての論理演算子の計算結果はTRUE、FALSE、またはNULL (UNKNOWN)です。OceanBaseデータベースでは、これらを1(TRUE)、0(FALSE)、およびNULLとして実装し、ゼロ以外かつNULL以外の値をすべてTRUEと評価します。
制限事項
ANY演算子は配列データ型のみがサポートしています。使用方法と例については、配列判定関数を参照してください。
NOT/!
引数が0の場合、計算結果は1です。引数が0以外の場合、計算結果は0であり、NOT NULLはNULLを返します。
例:
obclient> SELECT NOT NULL;
+----------+
| NOT NULL |
+----------+
| NULL |
+----------+
1 row in set
obclient> SELECT ! (1+1);
+---------+
| ! (1+1) |
+---------+
| 0 |
+---------+
1 row in set
AND/&&
すべての引数が0以外であり、かつNULLでない場合、計算結果は1です。引数のうち1つ以上が0の場合、計算結果は0です。それ以外の場合はNULLを返します。
例:
obclient> SELECT 1 AND NULL;
+------------+
| 1 AND NULL |
+------------+
| NULL |
+------------+
1 row in set
obclient> SELECT 0 AND NULL;
+------------+
| 0 AND NULL |
+------------+
| 0 |
+------------+
1 row in set
OR/||
2つの引数がどちらもNULLでない場合、引数のいずれかが0以外の場合、結果は1です。それ以外の場合は0です。NULL引数の場合、もう一方の引数が0以外の場合、結果は1です。それ以外の場合はNULLです。2つの引数がどちらもNULLの場合、結果はNULLです。
例:
obclient> SELECT 0 OR NULL;
+-----------+
| 0 OR NULL |
+-----------+
| NULL |
+-----------+
1 row in set
obclient> SELECT 1 OR NULL;
+-----------+
| 1 OR NULL |
+-----------+
| 1 |
+-----------+
1 row in set
XOR
引数のいずれかがNULLの場合、NULL返します。NULL以外の引数の場合、奇数個の引数が0以外の場合、計算結果は1です。それ以外の場合は0を返します。
例:
obclient> SELECT 1 XOR NULL;
+------------+
| 1 XOR NULL |
+------------+
| NULL |
+------------+
1 row in set
obclient> SELECT 1 XOR 1 XOR 1;
+---------------+
| 1 XOR 1 XOR 1 |
+---------------+
| 1 |
+---------------+
1 row in set
説明
a XOR bは数学的には (a AND (NOT b)) OR ((NOT a) and b) に等しいです。