暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 布尔类型

墨天轮 2019-10-12
673

布尔类型

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论