oracle数据库 我想在查询数字时给数字后两位前面加上小数点(原数字位数不确定),怎么写查询sql?

比如:
数字:122102 转变后:1221.02
数字:1002010101 转变后:10020101.01

最头疼的是数字位数不确定……

第1个回答  2013-03-31

的NUMBER

零,正,负,和浮点数存储固定长度。 NUMBER数据类型可以

形式NUMBER(P,S)来定义的准确度和范围的数字。 :P表示精度(1-38),它表示存储

单词列数p位的总长度:s表示的范围内,这表明在小数点后的数字位数。此值的范围从-84到127。例如:

CREATE TABLE测试(名称数量(5))

准确性定义一个正数(如12345)。

CREATE TABLE测试

(名称数量(5,2))
使用的准确性5和2的范围内定义一个数字。这样的数据类型的数值,如123.45和12.34
第2个回答  2013-03-14
ROUND(x/100,2)追问

那如果我想让前四位后面加上小数点呢?
如:
数字:122102 转变后:1221.02
数字:1002010101 转变后:1002.010101

追答

substr(to_char(122212),1,4)||'.'||substr(to_char(122212),5,length(to_char(12212))-5)

自己试下,我懒是算几位几位了。

没注意,已经有回答了。呵呵。

第3个回答  2013-03-14
select 字段/(int(log(10, 字段))+1)*10 from 表名
第4个回答  2013-03-14
select 字段/100 from 表名

不就行了吗?追问

那如果我想让前四位后面加上小数点呢?
如:
数字:122102 转变后:1221.02
数字:1002010101 转变后:1002.010101

追答

select to_number(substr(to_char(字段),1,4)||'.'||substr(to_char(字段),5,length(to_char(字段))-4)) from 表名

本回答被提问者采纳
相似回答