カテゴリ:

条件式関数

BOOLNOT

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

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

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

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

  • True 、式がゼロの場合。

  • False 、式がゼロ以外の場合。

  • NULL 、式が NULLの場合。

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

BOOLANDBOOLORBOOLXOR

構文

BOOLNOT( <expr> )
Copy

引数

expr

数値式です。

戻り値

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

使用上の注意

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

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

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

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

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

SELECT BOOLNOT(0),
       BOOLNOT(10),
       BOOLNOT(NULL);
Copy
+------------+-------------+---------------+
| BOOLNOT(0) | BOOLNOT(10) | BOOLNOT(NULL) |
|------------+-------------+---------------|
| True       | False       | NULL          |
+------------+-------------+---------------+

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

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

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

SELECT BOOLNOT(0.3);
Copy
+--------------+
| BOOLNOT(0.3) |
|--------------|
| True         |
+--------------+
SELECT BOOLNOT(-0.4);
Copy
+---------------+
| BOOLNOT(-0.4) |
|---------------|
| True          |
+---------------+

必要に応じて、 CEIL 関数を使用することで、正の浮動小数点値に対するこの丸め動作を回避できます。たとえば、次のクエリは False を返します。

SELECT BOOLNOT(CEIL(0.3));
Copy
+--------------------+
| BOOLNOT(CEIL(0.3)) |
|--------------------|
| False              |
+--------------------+

負の浮動小数点値の場合、関数の代: NOT 論理演算子 を使用することで、この丸め動作を回避できます。たとえば、次のクエリは False を返します。

SELECT NOT -0.4;
Copy
+----------+
| NOT -0.4 |
|----------|
| False    |
+----------+