写点什么

YashanDB TO_NUMBER 函数

作者:YashanDB
  • 2025-08-08
    广东
  • 本文字数:1606 字

    阅读完需:约 5 分钟

TO_NUMBER 函数将 expr 的值按 format 格式转换为 NUMBER 类型的数据。


expr 值的数据类型可以为:


数值型:此时不需要指定 format,函数直接转换为 NUMBER 类型。字符型:此时函数将根据 format 格式转换,且 expr 内容需符合指定的 format 格式。当 expr 的值为 NULL 时,函数返回 NULL。


format


指定转换的格式,支持以下字符的组合:


  • 小数点:.,如'99.99'

  • 美元符号:$,如'$9,999'

  • 强迫零显示:0,如'00000'

  • 指定位置返回数字:9,如'9999'

  • 指定位置返回小数点:D,如'99D99'

  • 设首位或末尾为-或+:S,如'S9999'

  • 千位分隔符:,,如'9,999'

  • 在指定位置返回千位分隔符:G,如'9G9'

(以下为列存表专用格式)

  • 当整数部分为零时,返回定点数字整数部分的空格:B,如'B99'

  • 在指定位置返回货币符号:C,如'C99'

  • 以科学计数法的形式返回数字:EEEE,如'9EEEE'

  • 在指定位置显示货币符号:L,如'L99'

  • 负值末尾填充负号,正值末尾填充空格:MI,如'9MI'

  • 负值放在<>中,正值首尾填充空格:PR,如'9PR'

  • 返回大写罗马数字形式:RN,如'RN'

  • 返回小写罗马数字形式:rn,如'RN'

  • 以最少的字符数返回十进制数字字符串:TM,如'TM'

  • 在指定位置返回欧元等货币符号:U,如'U99'

  • 返回 10n值,其中 n 是 V 后面的数字:V,如'99V99'

  • 返回指定数字的十六进制值:X,如'XXX'

  • 去掉前后空格和小数后面多余的 0:FM,如'FM999'

示例

--将所有数据转化为NUMBER类型输出,此数据的显示宽度与SET NUMWIDTH有关SELECT TO_NUMBER(numbera) n1,TO_NUMBER(numberb) n2,TO_NUMBER(numberc) n3,TO_NUMBER(numberd) n4,TO_NUMBER(numbere) n5,TO_NUMBER(numberf) n6,TO_NUMBER(numberg) n7FROM numbers;        N1          N2          N3          N4          N5          N6          N7       ----------- ----------- ----------- ----------- ----------- ----------- -----------          -5          55        5555  5.5556E+18  5.55499983  -5.5555556         555       
复制代码


代码

to_number::= TO_NUMBER "("expr ["," format] ")"
复制代码

TO_NUMBER 函数将expr的值按 format 格式转换为 NUMBER 类型的数据。

expr 值的数据类型可以为:

  • 数值型:此时不需要指定 format,函数直接转换为 NUMBER 类型。

  • 字符型:此时函数将根据 format 格式转换,且 expr 内容需符合指定的 format 格式。

当 expr 的值为 NULL 时,函数返回 NULL。

format

指定转换的格式,支持以下字符的组合:

  • 小数点:.,如'99.99'

  • 美元符号:$,如'$9,999'

  • 强迫零显示:0,如'00000'

  • 指定位置返回数字:9,如'9999'

  • 指定位置返回小数点:D,如'99D99'

  • 设首位或末尾为-或+:S,如'S9999'

  • 千位分隔符:,,如'9,999'

  • 在指定位置返回千位分隔符:G,如'9G9'

(以下为列存表专用格式)

  • 当整数部分为零时,返回定点数字整数部分的空格:B,如'B99'

  • 在指定位置返回货币符号:C,如'C99'

  • 以科学计数法的形式返回数字:EEEE,如'9EEEE'

  • 在指定位置显示货币符号:L,如'L99'

  • 负值末尾填充负号,正值末尾填充空格:MI,如'9MI'

  • 负值放在<>中,正值首尾填充空格:PR,如'9PR'

  • 返回大写罗马数字形式:RN,如'RN'

  • 返回小写罗马数字形式:rn,如'RN'

  • 以最少的字符数返回十进制数字字符串:TM,如'TM'

  • 在指定位置返回欧元等货币符号:U,如'U99'

  • 返回 10n值,其中 n 是 V 后面的数字:V,如'99V99'

  • 返回指定数字的十六进制值:X,如'XXX'

  • 去掉前后空格和小数后面多余的 0:FM,如'FM999'

示例

--将所有数据转化为NUMBER类型输出,此数据的显示宽度与SET NUMWIDTH有关SELECT TO_NUMBER(numbera) n1,TO_NUMBER(numberb) n2,TO_NUMBER(numberc) n3,TO_NUMBER(numberd) n4,TO_NUMBER(numbere) n5,TO_NUMBER(numberf) n6,TO_NUMBER(numberg) n7FROM numbers;        N1          N2          N3          N4          N5          N6          N7       ----------- ----------- ----------- ----------- ----------- ----------- -----------          -5          55        5555  5.5556E+18  5.55499983  -5.5555556         555       
复制代码


用户头像

YashanDB

关注

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

还未添加个人简介

评论

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