跳到主要内容

TO_DECIMAL

将一个值转换为 DECIMAL 数据类型。

语法

TO_DECIMAL
( <expr> [, '<format>' ] [, <precision> [, <scale> ] ] )

参数

参数说明
expr布尔、数字、字符串或变体类型的表达式。
format可选。格式化字符串,用于指定十进制结果所需的精度和小数位数,可定义总位数和小数点后的位数。
precision可选。结果中有效数字的总位数,默认为 38。
scale可选。小数点后的位数,必须不超过精度值,默认为 0。

格式说明符 (Format Specifiers)

格式说明符说明示例输入
'9'可选数字(接受数字或无,但在此实现中要求必须有一个)"123"
'0'必需数字(在当前实现中与 9 相同)"123"
'D'小数点(接受 '.' 或 ',',始终规范化为 '.')"12.34"
'G'分组(千位)分隔符(在输入中需要 ',')"1,234"
'S'符号('+' 或 '-',作为前缀应用于结果)"-123"
字面量字符任何字面量字符必须与输入完全匹配"NT$123"

示例

SELECT TO_DECIMAL('1234.56');

╭───────────────────────╮
│ to_decimal('1234.56')
├───────────────────────┤
1235
╰───────────────────────╯

SELECT TO_DECIMAL('1234.56', '9999D99');

╭──────────────────────────────────╮
│ to_decimal('1234.56', '9999D99')
├──────────────────────────────────┤
1235
╰──────────────────────────────────╯

SELECT TO_DECIMAL('1234.56', 38, 1);

╭──────────────────────────────╮
│ to_decimal('1234.56', 38, 1)
├──────────────────────────────┤
1234.6
╰──────────────────────────────╯

SELECT TO_DECIMAL('NT$1234.56', 'NT$9999D99', 38, 1);

╭───────────────────────────────────────────────╮
│ to_decimal('NT$1234.56', 'NT$9999D99', 38, 1)
├───────────────────────────────────────────────┤
1234.6
╰───────────────────────────────────────────────╯
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册