OceanBaseデータベースは、一般的な論理演算子をサポートしています。
論理演算子の概要
OceanBaseデータベースの現在のバージョンでサポートされている論理演算子の詳細は、次の表のとおりです。
演算子 |
演算子 |
意味 |
|---|---|---|
NOT/! |
1元 | 論理非 |
AND/&& |
2元 | 論理積 |
OR/|| |
2元 | 論理和 |
XOR |
複数元 | 論理排他和 |
説明
SQLでは、すべての論理演算子の計算結果は TRUE、FALSE、または NULL (UNKNOWN) です。OceanBaseデータベースでは、これらを1 (TRUE)、0 (FALSE)、NULL として実装し、0以外の非 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) と等しいです。