カテゴリ:

条件式関数

BOOLOR

2つの数値式のブール値 OR を計算します。次のブールセマンティクスに従います。

  • ゼロ以外の値(負の数を含む)はtrueと見なされます。

  • ゼロ値はfalseと見なされます。

結果として、関数は以下を返します。

  • True 、両方の式がゼロ以外、または一方の式がゼロ以外で、もう一方の式がゼロまたは NULLの場合。

  • False 、両方の式がゼロの場合。

  • NULL 、両方の式が NULL であるか、1つの式が NULL で、他の式がゼロの場合。

こちらもご参照ください。

BOOLAND 、 BOOLNOT 、 BOOLXOR

構文

BOOLOR( <expr1> , <expr2> )

引数

expr1

数値式です。

expr2

数値式です。

戻り値

この関数は BOOLEAN 型または NULL の値を返します。

使用上の注意

この関数は 浮動小数点数 を丸めます。そのため、ゼロでない浮動小数点数をゼロに丸めると、予期せぬ結果を返すことがあります。

この動作の例と回避策については、 浮動小数点数に対してブール値の OR 結果を計算します。 をご参照ください。

例

以下の例では、 BOOLOR 関数を使用しています。

整数および NULL の値に対してブール値の OR 結果を計算します。

以下のクエリは、整数と NULL 値のブール OR 結果を計算します。

SELECT BOOLOR(1, 2),
       BOOLOR(0, 2),
       BOOLOR(3, NULL),
       BOOLOR(0, 0),
       BOOLOR(NULL, 0),
       BOOLOR(NULL, NULL);
+--------------+--------------+-----------------+--------------+-----------------+--------------------+
| BOOLOR(1, 2) | BOOLOR(0, 2) | BOOLOR(3, NULL) | BOOLOR(0, 0) | BOOLOR(NULL, 0) | BOOLOR(NULL, NULL) |
|--------------+--------------+-----------------+--------------+-----------------+--------------------|
| True         | True         | True            | False        | NULL            | NULL               |
+--------------+--------------+-----------------+--------------+-----------------+--------------------+

浮動小数点数に対してブール値の OR 結果を計算します。

以下の例は、ゼロに丸められた浮動小数点数に対して、この関数が予期しない結果を返す可能性があることを示しています。

以下のクエリでは、関数呼び出しの結果が True になることが期待されますが、関数がゼロ以外の浮動小数点値をゼロに丸めるため、 False が返されます。

SELECT BOOLOR(0.4, 0.3);
+------------------+
| BOOLOR(0.4, 0.3) |
|------------------|
| False            |
+------------------+
SELECT BOOLOR(-0.4, 0.3);
+-------------------+
| BOOLOR(-0.4, 0.3) |
|-------------------|
| False             |
+-------------------+

以下のクエリでは、関数呼び出しの結果が True になることが期待されますが、 NULL が返されます。

SELECT BOOLOR(0.4, NULL);
+-------------------+
| BOOLOR(0.4, NULL) |
|-------------------|
| NULL              |
+-------------------+
SELECT BOOLOR(-0.4, NULL);
+--------------------+
| BOOLOR(-0.4, NULL) |
|--------------------|
| NULL               |
+--------------------+

必要に応じて、関数の代わりに OR論理演算子 を使用することで、浮動小数点値のこの丸め動作を回避できます。たとえば、次のクエリは True を返します。

SELECT 0.4 OR 0.3;
+------------+
| 0.4 OR 0.3 |
|------------|
| True       |
+------------+