閱讀451 返回首頁    go 英雄聯盟


邏輯運算符__運算符_SQL語法參考_雲數據庫 OceanBase-阿裏雲

在OceanBase中,邏輯操作符會把左右操作數都轉成BOOL類型進行運算。邏輯運算時返回“Error”表示計算錯誤。

OceanBase各數據類型轉換BOOL類型的規則如下:

  • 字符串隻有是“True”、“False”、“1”和“0”才能夠轉換到BOOL類型,其中字符串“True”和“1”為“True”,字符串“False”和“0”為“False”。

  • “INT”、“FLOAT”、“DOUBLE”和“DECIMAL”轉換BOOL類型時,數值不為零時為“True”,數值為零時為“False”。

NOT !

邏輯非,操作類型對照表如下。

INT FLOAT DOUBLE TIMESTAMP VARCHAR BOOL NULL
True/False True/False True/False Error True/False/E True/False NULL
Oceanbase>SELECT NOT 0, NOT 1, NOT NULL;
+-------+-------+----------+
| NOT 0 | NOT 1 | NOT NULL |
+-------+-------+----------+
|     1 |     0 |     NULL |
+-------+-------+----------+
1 row in set (0.00 sec)

AND &&

邏輯與,操作類型對照表如下。

INT FLOAT DOUBLE TIMESTAMP VARCHAR BOOL NULL
INT True/False True/False True/False Error True/False/Error True/False False/NULL
FLOAT True/False True/False Error True/False/Error True/False False/NULL
DOUBLE True/False Error True/False/Error True/False False/NULL
TIMESTAMP Error Error True/False Error
VARCHAR True/False/Error True/False/Error False/NULL
BOOL True/False False/NULL
NULL NULL
Oceanbase>SELECT (0 AND 0), (0 AND 1), (1 AND 1), (1 AND NULL);
+-----------+-----------+-----------+--------------+
| (0 AND 0) | (0 AND 1) | (1 AND 1) | (1 AND NULL) |
+-----------+-----------+-----------+--------------+
|         0 |         0 |         1 |         NULL |
+-----------+-----------+-----------+--------------+
1 row in set (0.00 sec)

OR ||

邏輯或,操作類型對照表如下。

INT FLOAT DOUBLE TIMESTAMP VARCHAR BOOL NULL
INT True/False True/False True/False Error True/False/Error True/False True/NULL
FLOAT True/False True/False Error True/False/Error True/False True/NULL
DOUBLE True/False Error True/False/Error True/False True/NULL
TIMESTAMP Error Error Error Error
VARCHAR True/False/Error True/False/Error True/NULL
BOOL True/False True/NULL
NULL NULL
Oceanbase>SELECT (0 OR 0), (0 OR 1), (1 OR 1), (1 AND NULL);
+----------+----------+----------+--------------+
| (0 OR 0) | (0 OR 1) | (1 OR 1) | (1 AND NULL) |
+----------+----------+----------+--------------+
|        0 |        1 |        1 |         NULL |
+----------+----------+----------+--------------+
1 row in set (0.01 sec)

XOR(暫不支持)

邏輯異或。當任意一個操作數為NULL時,返回值為NULL。對於非NULL的操作數,假如有奇數個操作數為非零值,則計算所得結果為1,否則為0。

Mysql>SELECT 1 XOR TRUE, 1 XOR 1, 1 XOR 2, 1 XOR NULL, 1 XOR 1 XOR 1;
+------------+---------+---------+------------+---------------+
| 1 XOR TRUE | 1 XOR 1 | 1 XOR 2 | 1 XOR NULL | 1 XOR 1 XOR 1 |
+------------+---------+---------+------------+---------------+
|          0 |       0 |       0 |       NULL |             1 |
+------------+---------+---------+------------+---------------+
1 row in set (0.01 sec)

最後更新:2016-11-23 16:03:54

  上一篇:go 時間日期類型__數據類型_SQL語法參考_雲數據庫 OceanBase-阿裏雲
  下一篇:go 算術運算符__運算符_SQL語法參考_雲數據庫 OceanBase-阿裏雲