TO_CHAR
📄字数 775
👁️阅读量 加载中...
功能描述
将数值等类型转换为格式化字符串。
语法格式
sql
TO_CHAR(expr[, fmt])
输入参数
expr
:要转换的值,数值
、布尔
、字符串
、CLOB
以及JSON
类型,或能隐式转换为上述类型的其他类型。fmt
:格式串,VARCHAR
类型,如:9999.99
。如果省略fmt
,则expr
将被转换为刚好足够容纳其有效数字的字符串值。
参数支持的类型
第一个参数 | 第二个参数 |
---|---|
BIGINT | - |
BOOLEAN | - |
CHAR | - |
CLOB | - |
DOUBLE | - |
FLOAT | - |
INTEGER | - |
JSON | - |
NUMERIC | - |
NUMERIC | CHAR |
SMALLINT | - |
TINYINT | - |
提示
- 因
NULL
无具体的类型,当第一个参数为NULL
时,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的类型,如:TO_CHAR(NULL::NUMERIC)
。 -
表示无输入参数。
支持的格式说明
格式 | 示例 | 描述 |
---|---|---|
空格 | 99 9 9 | 原样输出空格 |
, | 9,999 | 在指定位置返回逗号 |
. | 99.99 | 在指定位置返回小数点 |
$ | $9999 | 返回值前置美元符号 |
0 | ||
9 | 9999 | 返回带有指定数字位数的值,如果为正数则前面加空格,不支持第一个参数为负数。如果值为零,则返回零 |
B | B9999 | 无实际意义,'B9999' 同 '9999' |
D | 99D99 | 在指定位置返回小数点 |
F | FM99999 | 返回的值删除了前置的空格 |
G | 9G999 | 在指定的位置返回逗号 |
S |
提示
- 格式的大小写敏感。
输出结果
返回 VARCHAR
类型,任意输入参数为 NULL
时,输出结果为 NULL
。
提示
- 如果格式和输入参数匹配不上,返回结果全为
#
。
示例
sql
-- 按照格式串返回值
SQL> SELECT TO_CHAR(123.4, '99999.99'), TO_CHAR(123.4, '$999.99'), TO_CHAR(12345, '99G999') FROM dual;
+----------+---------+--------+
| EXPR1 | EXPR2 | EXPR3 |
+----------+---------+--------+
| 123.40 | $123.40 | 12,345 |
+----------+---------+--------+