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

OceanBase SQL语句位值

2024-04-26
186

位值以前缀 b /B 和 0b /0B 开始,以 0 和 1 组成的二进制数字。 以下为合法的位值:

b'11'
B'11'
0b11
0B11

以下为不合法的位值:

b'3'(3 不是二进制数字)

默认情况下,位值是二进制字符串:

obclient> SELECT b'1000001', CHARSET(b'1000001');
+------------+---------------------+
| b'1000001' | CHARSET(b'1000001') |
+------------+---------------------+
| A          | binary              |
+------------+---------------------+
1 row in set 

obclient> SELECT 0b1100001, CHARSET(0b1100001);
+-----------+--------------------+
| 0b1100001 | CHARSET(0b1100001) |
+-----------+--------------------+
| a         | binary             |
+-----------+--------------------+
1 row in set 

OceanBase 数据库会将位值视为整数。为确保位值不会按照数字被处理,可以添加 0 或使用 CAST(... AS UNSIGNED)。 默认情况下,分配给用户自定义变量的位值是二进制字符串。

obclient>  SET @v1 = b'1100001';
Query OK, 0 rows affected 

obclient> SET @v2 = b'1100001'+0;
Query OK, 0 rows affected 

obclient> SET @v3 = CAST(b'1100001' AS UNSIGNED);
Query OK, 0 rows affected 

obclient> SELECT @v1, @v2, @v3;
+------+------+------+
| @v1  | @v2  | @v3  |
+------+------+------+
| a    |   97 |   97 |
+------+------+------+
1 row in set 
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论