写点什么

YashanDB BIN_TO_NUM 函数

作者:YashanDB
  • 2025-04-22
    广东
  • 本文字数:720 字

    阅读完需:约 2 分钟

本文内容来自 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

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB BIN_TO_NUM函数_YashanDB_InfoQ写作社区