ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB BIN_TO_NUM函数

YashanDB BIN_TO_NUM函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-04-10 18:42:03 0 删除 编辑
语法图
代码
bin_to_num
BIN_TO_NUM(expr,)

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表)

--将二进制位向量串11转换为十进制3SELECT BIN_TO_NUM(1,1) res FROM DUAL;RES-----------3--将二进制位向量串1101转换为十进制13SELECT BIN_TO_NUM(b'1',1,0,1) res FROM DUAL;RES-----------13--创建bt_table_bin_to_num表,包含多个浮点型字段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);--对于NUMBER数据,函数按去小数位取整后进行十进制转换,对于浮点型小数,函数按四舍五入取整后进行十进制转换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--对于NUMBER数据,函数按去小数位取整为1后进行十进制转换SELECT BIN_TO_NUM(1.8) res FROM DUAL;RES-----------1--c4字段按四舍五入取整为2后进行十进制转换,导致报错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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3080593/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: YashanDB ASIN函数
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639933