首页 > 数据库 > 国内数据库 > YashanDB比较运算符
YashanDB提供如下比较运算符:
| 运算符 | 操作数 | 含义 | NULL参与运算 |
|---|---|---|---|
| = | 二元 | 等于 | 结果为FALSE |
| != 或 <> | 二元 | 不等于 | 结果为FALSE |
| > | 二元 | 大于 | 结果为FALSE |
| >= | 二元 | 大于等于 | 结果为FALSE |
| < | 二元 | 小于 | 结果为FALSE |
| <= | 二元 | 小于等于 | 结果为FALSE |
| [NOT] IN | 二元 | 左边数据是否[不]在右边数据集合中 | IN: |
| * 左边数据为NULL:结果为FALSE |
|
|
|
| * 右边集合包含NULL:如果集合中有非NULL值与左边数据相等,则结果为TRUE,否则为FALSE |
|
|
|
| NOT IN: |
|
|
|
| * 左边数据为NULL:结果为FALSE |
|
|
|
| * 右边集合包含NULL:如果集合中含有NULL值,则返回FALSE;如果集合中不含NULL值,且所有数据与左边数据不相等,则结果为TRUE,否则为FALSE |
|
|
|
| [NOT] LIKE | 二元 | 左边数据是否与右边数据[不]匹配 | 结果为FALSE |
| [NOT] BETWEEN AND | 三元 | 第一个数据是否[不]在第二个数据和第三个数据组成的区间内 | 结果为FALSE |
| IS [NOT] NULL | 一元 | 是否[不]等于NULL | IS NULL: |
| * 操作数为NULL:结果为TRUE |
|
|
|
| * 操作数不为NULL:结果为FALSE |
|
|
|
| IS NOT NULL: |
|
|
|
| * 操作数为NULL:结果为FALSE |
|
|
|
| * 操作数不为NULL:结果为TRUE |
|
|
|
比较运算符在SQL语法中的详细运用请参考 condition条件子句描述。
从高到低的运算优先级为:
可以使用双括号()来调整想达到的运算优先级。
在执行=、!= 或 <>、>、>=、<、<=比较符运算时,如下数据类型可能会参与到比较运算中:
如果比较符两边的数据类型不一致,YashanDB将通过隐式数据转换,将其中一边的数据类型向另一边统一,统一原则为:
行列标题格为参与=、!= 或 <>、>、>=、<、<=比较符运算的数据类型;内容单元格为统一后的数据类型;–表示不支持两种数据类型参与比较运算。
| 数据类型 | TINYINT | SMALLINT | INT | BIGINT | BIT | NUMBER | FLOAT | DOUBLE | BOOLEAN |
|---|---|---|---|---|---|---|---|---|---|
| TINYINT | TINYINT | SMALLINT | INT | BIGINT | BIGINT | NUMBER | FLOAT | DOUBLE | TINYINT |
| SMALLINT | SMALLINT | SMALLINT | INT | BIGINT | BIGINT | NUMBER | FLOAT | DOUBLE | SMALLINT |
| INT | INT | INT | INT | BIGINT | BIGINT | NUMBER | FLOAT | DOUBLE | INT |
| BIGINT | BIGINT | BIGINT | BIGINT | BIGINT | BIGINT | NUMBER | FLOAT | DOUBLE | BIGINT |
| BIT | BIGINT | BIGINT | BIGINT | BIGINT | BIT | NUMBER | -- | -- | BIGINT |
| NUMBER | NUMBER | NUMBER | NUMBER | NUMBER | NUMBER | NUMBER | FLOAT | DOUBLE | -- |
| FLOAT | FLOAT | FLOAT | FLOAT | FLOAT | -- | FLOAT | FLOAT | DOUBLE | -- |
| DOUBLE | DOUBLE | DOUBLE | DOUBLE | DOUBLE | -- | DOUBLE | DOUBLE | DOUBLE | -- |
| BOOLEAN | TINYINT | SMALLINT | INT | BIGINT | BIGINT | -- | -- | -- | BOOLEAN |
行列标题格为参与=、!= 或 <>、>、>=、<、<=比较符运算的数据类型;内容单元格为统一后的数据类型,其中(1)表示采用上面(1)数值型与布尔型统一规则;–表示不支持两种数据类型参与比较运算。
| 数据类型 | 整型数值 | BIT | NUMBER | FLOAT | DOUBLE | BOOLEAN | 字符型 |
|---|---|---|---|---|---|---|---|
| 整型数值 | (1) | (1) | (1) | (1) | (1) | (1) | NUMEBR |
| BIT | (1) | (1) | (1) | (1) | (1) | (1) | BIT |
| NUMBER | (1) | (1) | (1) | (1) | (1) | (1) | NUMEBR |
| FLOAT | (1) | (1) | (1) | (1) | (1) | (1) | FLOAT |
| DOUBLE | (1) | (1) | (1) | (1) | (1) | (1) | DOUBLE |
| BOOLEAN | (1) | (1) | (1) | (1) | (1) | (1) | BOOLEAN |
| 字符型 | NUMEBR | BIT | NUMEBR | FLOAT | DOUBLE | BOOLEAN | 字符型* |
Note:
字符型与字符型的比较,执行的是大小写敏感的字符串比较,详细描述请参考 字符型文档。
行列标题格为参与=、!= 或 <>、>、>=、<、<=比较符运算的数据类型;内容单元格为统一后的数据类型,其中(2)表示采用上面(2)数值型、布尔型与字符型统一规则;–表示不支持两种数据类型参与比较运算。
| 数据
类型 | 数值型 | 字符型 | BOOLEAN | DATE | TIMESTAMP | YM_
INTERVAL | DS_
INTERVAL | TIME |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
数值型 | (2) | (2) | (2) | -- | -- | -- | -- | -- |
|
字符型 | (2) | (2) | (2) | DATE | TIMESTAMP | YM_
INTERVAL | DS_
INTERVAL | TIME |
|
BOOLEAN | (2) | (2) | (2) | -- | -- | -- | -- | -- |
|
DATE | -- | DATE | -- | DATE | TIMESTAMP | -- | -- | -- |
|
TIMESTAMP | -- | TIMESTAMP | -- | TIMESTAMP | TIMESTAMP | -- | -- | -- |
|
YM_
INTERVAL | -- | YM_
INTERVAL | -- | -- | -- | YM_
INTERVAL | -- | -- |
|
DS_
INTERVAL | -- | DS_
INTERVAL | -- | -- | -- | -- | DS_
INTERVAL | DS_
INTERVAL |
|
TIME | -- | TIME | -- | -- | -- | -- | DS_
INTERVAL | TIME |
示例
SELECT SYSDATE FROM DUAL WHERE NULL IN (1,NULL); SYSDATE SELECT SYSDATE FROM DUAL WHERE 1 IN (1,NULL); SYSDATE 2021-06-08 10:05:53 SELECT SYSDATE FROM DUAL WHERE 1 IN (2,NULL); SYSDATE SELECT 1 FROM dualWHERE '0'<4; 1 1 SELECT 1 FROM dualWHERE true LIKE 'true%'; 1 1
Copied!
RAW类型只可与自身或字符型进行比较,规则如下:
(行列标题格为参与=、!= 或 <>、>、>=、<、<=比较符运算的数据类型;内容单元格为统一后的数据类型。)
| 数据类型 | RAW | 字符型 |
|---|---|---|
| RAW | RAW | RAW |
| 字符型 | RAW | 字符型 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3079699/ ,如需转载,请注明出处,否则将追究法律责任。