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 |
+----------+---------+--------+