我有这样的oracle查询:
SELECT floatColum0,floatColum1,ROUND(floatColum2,2) from table;
返回的值如下:
.2 , 1.23, .23
我怎么能得到这样的东西? (领先零)
0.2, 1.23, 0.23 ?
答案 0 :(得分:5)
不是前导零为cut
的数字,而是数字的字符串表示。大多数情况下,这不是问题,因为应用程序逻辑与数据库中的数据一起使用,数据库与实际数据(在本例中为数字本身)一起使用而不是其字符串表示。但是如果你绝对需要这个,你可以在查询中格式化字符串:
SET numformat 99.99;
SELECT floatColum0,floatColum1,ROUND(floatColum2,1) from table;
这应该可以解决问题,但请记住,这是一个非常毫无意义的练习。有关其他详细信息:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#SQLRF00211
答案 1 :(得分:1)
我认为您的问题可能是区域设置。
制作本:
并更改您想要的值。
答案 2 :(得分:0)
您可以尝试将其转换为varchar,如果第一个字符为',则使用case语句添加零。 (如果没有其他任何东西,则不加任何东西)。
我不是Oracle专家,但我认为你不能在不改变数据类型的情况下“添加”零。