如何从sqlplus中的数字列中删除小数点后的尾随零?

时间:2018-05-24 11:57:35

标签: sql oracle sqlplus

我有一个名为Amount的数据库表字段,其类型为数字(38,8),在sqlplus中,我将列格式化为“COLUMN Amount FORMAT 999999999999999999999999.99999”,但在写入csv时,我们总是试用零。 例如,如果数字是9.23,那么结果将是9.2300

例如,如果number为9,则结果为9.0000

如何删除尾随零。

请帮帮我..

3 个答案:

答案 0 :(得分:1)

您可以使用to_char和格式代码TM执行此操作(请参阅documentation

SELECT to_char(column, 'TM') FROM table;

示例:

SELECT to_char(9.2300, 'TM') FROM dual; -- returns 9.23
SELECT to_char(9.0000, 'TM') FROM dual; -- returns 9
SELECT to_char(100, 'TM') FROM dual;    -- returns 100
SELECT to_char(010, 'TM') FROM dual;    -- returns 10

编辑:

SELECT round(to_char(column, 'TM'), 5) FROM table;

您可以将结果限制为5位小数。

SELECT to_char(round(123.654321000, 5), 'TM') FROM dual; -- returns 123.65432

答案 1 :(得分:0)

TO_NUMBER函数还会删除小数点后的零。

例如:1.4500至1.45、1.9000至1.9等

样品查询:

{{1}}

答案 2 :(得分:-1)

试试这个。

select rtrim(rtrim(to_char(column_name), 0 ), '.' ) from table_name;