布尔类型
GaussDB 100支持布尔类型, 布尔类型值仅可以为TRUE和FALSE,在内部存储时分别对应数值1和0。
BOOLEAN
语法:
BOOLEAN
功能:存储布尔类型数据。
取值范围:TRUE,FALSE。
- 在SQL语句中,支持的布尔输入有:
- 保留字: TRUE和FALSE(不区分大小写)。
- 字符串输入:
- 普通字符串:“TRUE”"和“FALSE”(不区分大小写)。
- 单个字符:“T”和“F”( 不区分大小写)。
- 字符串数值:仅支持“1”和“0”。
- 空值(NULL)输入:与其他类型的空值处理一样。
- 布尔类型的输出
布尔类型在显示时(如select语句中),或将布尔类型转换为字符串时, GaussDB 100统一将“1”输出为字符串“TRUE”,“0”输出为字符串“FALSE”。
占用空间:4字节。
对应关键字:
- BOOL
- BOOLEAN
布尔类型与其他类型之间的转换
GaussDB 100定义了如下转换规则:
- 整数类型( INT和BIGINT):布尔类型可以看成是数字0与1,因此它可以转换为整数0和1,整数类型可以转换为布尔类型,转换规则为整数0对应布尔FALSE, 其他非0整数为布尔TRUE。
- DOUBLE和DECIMAL:布尔类型不能与这两种数值类型互转。
- 布尔类型不支持二进制类型和日期类型互转。
布尔类型的比较运算规则
- 比较运算规则主要出现在where语句中用于条件判断, 例如:
SELECT * from TEST_TABLE WHERE c_bool = TRUE;
- GaussDB 100中BOOLEAN比较的总体原则是按其数值(0或1)进行比较,具体规则如下:
- 保留字: 系统内置两个布尔保留字TRUE和FALSE,分别对应数值1和0,当布尔变量同保留字比较时按数值大小比较。
- 与字符串比较: 在同字符串比较时,首先将字符串按5.1中字符串输入规则将字符串转换为布尔变量, 然后再进行比较,若字符串转换失败则报错。
- 与数值类型比较:
- 与整数比较:将布尔类型转换成整数0和1后,再进行比较。
- 与浮点数和高精度decimal类型比较:不支持比较,直接报错。
- 不支持同日期类型和二进制类型比较。
[NOT] IN (expr_list)和 [NOT] BETWEEN (expr) AND (expr): 当布尔变量出现在这两种语句时,首先将IN和BETWEEN语句中的"字符串"转换为布尔值,然后再进行比较。若转换失败则报错,若其中存在整数,则按布尔类型和整数规则比较。
布尔类型的四则运算
- 布尔类型不支持四则运算和位运算。
- 布尔类型支持连接运算(||),首先按布尔类型与其他类型之间的转换中的规则转换为字符串,然后再进行连接。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。