本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/开发手册/SQL参考手册/内置函数/BIN_TO_NUM.html
图片
BIN_TO_NUM函数用于实现二进制向十进制的转换,将一个或多个expr组合表示的二进制位向量串转换成与其等效的数值,返回一个NUMBER类型的数据。本函数不支持向量化计算。每一个expr表示位向量中的一个位,其值可以为任何数值型,或可隐式转换为NUMBER类型的字符型数据。本函数支持最多输入65535个expr作为参数,但计算的数值超过number表示范围则报错,且所有expr的值都必须为0/1,或进行取整后为0/1,否则报错。取整规则为:如果expr为FLOAT/DOUBLE类型,函数对其进行奇进偶舍取整(例如:1.5->2,0.5->0)。对于其他类型,函数进行去掉小数位取整(例如:1.3->1,1.6->1)。示例(HEAP表)


SELECT BIN_TO_NUM(1,1) res FROM DUAL;
RES

3


SELECT BIN_TO_NUM(b'1',1,0,1) res FROM DUAL;
RES

13


CREATE TABLE bt_table_bin_to_num(c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, c4 DOUBLE);
INSERT INTO bt_table_bin_to_num VALUES(0.3,0.8,1.3,1.8);


SELECT BIN_TO_NUM(0.3) "0.3", BIN_TO_NUM(c1) "d0.3", 
BIN_TO_NUM(0.8) "0.8", BIN_TO_NUM(c2) "d0.8", 
BIN_TO_NUM(1.3) "1.3", BIN_TO_NUM(c3) "d1.3"
FROM bt_table_bin_to_num;
        0.3        d0.3         0.8        d0.8         1.3        d1.3 

          0           0           0           1           1           1


SELECT BIN_TO_NUM(1.8) res FROM DUAL;
RES

1


SELECT BIN_TO_NUM(c4) res FROM bt_table_bin_to_num;
[1:19]YAS-06001 the value of parameter expression is invalid, the value of the expression must be 0 or 1


YashanDB
1 声望0 粉丝

崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的...