YashanDB 位运算符
本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C/SQL%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E8%BF%90%E7%AE%97%E7%AC%A6/%E4%BD%8D%E8%BF%90%E7%AE%97%E7%AC%A6.html
YashanDB 提供如下位运算符:
| 结果为 NULL || | | 二元 | 按位或:0 | 0 = 0
其他为 1
| 结果为 NULL || ^ | 二元 | 按位异或:0 ^ 0 = 0 或 1 ^ 1 = 0
其他为 1
| 结果为 NULL |
YashanDB 中,可实现位运算的方式有:
位运算符:&、|、^
内置函数:BITAND BITOR BITXOR
其中,&与 BITAND 同义,|与 BITOR 同义,^与 BITXOR 同义。
参与运算的两个数据,按二进制展开后,由低到高每 bit 进行位运算,并以 BIGINT 类型输出运算结果。
位运算最多支持到 64 位。
小数参与运算:FLOOR取整后,参与位运算。
运算优先级
从高到低的运算优先级为:^>&>|。
可以使用双括号()来调整想达到的运算优先级。
数据类型
如下数据类型可能会参与到位运算中:
数值型(除 FLOAT、DOUBLE 外)
字符型
在进行二元位运算时,YashanDB 将通过隐式数据转换,将参与运算的数据类型全部统一到 BIGINT 类型,再进行位运算。
下图列示具体统一规则:(行列标题格为参与位运算的数据类型;内容单元格为统一后的数据类型;–表示不支持两种数据类型参与位运算)

版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/53dfe7a2106a288da17fedc5d】。文章转载请联系作者。
评论