oracle怎么去掉小数,oracle 舍去小数

oracle怎么去小数点后两位

SQL SELECT

临西网站建设公司创新互联公司,临西网站设计制作,有大型网站制作公司丰富经验。已为临西1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的临西做网站的公司定做!

2 TO_CHAR(123,'9990.00') A,

3 TO_CHAR(5.8,'9990.00') B,

4 TO_CHAR(.46,'9990.00') C

5 FROM

6 dual;

A B C

---------------- ---------------- ----------------

123.00 5.80 0.46

SQL

格式化oracle数据库 查询结果的 小数

java里面有的…… DecimalFormat

字符含义

一位数字,这一位缺失显示为0。用来补零

#

一位数字, 这一位缺失就不显示

.

小数点,不用多说了吧

千位分隔符

E

科学计数法

%

百分比

比如你要的就是#.00 你搜下DecimalFormat 吧。我搞c的……前阵正好项目中java的同事碰到这个

Oracle函数的使用

接收字符返回字符或数值时可以使用dual伪表

1、把小写字符转换成大写

select supper(“smi”) form dual

2、把大写转换成小写

lower(“SMI”)

3、首字母大写

initcap(“smi”)

4、字符串的连接可以使用concat,也可以使用    建议使用

concat(“hello”“world”) 结果为helloworld

5、字符串的截取,使用substr,第一个参数为字符串,第二个参数是索引,第三个参数结束索引(开始索引使用0和1效果一样)

substr(hello,0,3) 结果为hel

6、获取字符串长度

length(“hello”)

7、字符串替换,第二个参数为被替换的字符串,第三个是替换的字符串

replace(“hello”,“l”,“x”) 结果为hexxo

1、四舍五入函数ROUND()

默认取整,可以指定保留位数

round(12.523)  结果为13

round(12.537,2) 结果为12.54

2、取整TRUNC

默认全部去掉小数,可以指定位数

trunc(12.789) 结果为12

3、取余数MOD

mod(10,3) 结果为1

oracle中提供了很多和日期相关的函数,包括日期的加减

日期 - 数字 =日期

日期 - 日期 = 数字(天)

1、如:查询员工进入公司的走数

(sysdate - 入职日期)/7

注:当前日期查询select sysdate form dual

2、查询所有员工进入公司的月数

获取两个时间段的月数使用months_between(sysdate,入职日期)

3、获取几个月后的日期:add_months()

如:获取员工三个月后的日期

add_months(sysdate,3)

4、如求出下星期一是什么时候

指定给出下次某日期数next_date()

next_date(sysdate,“星期一”)

5、求日期的最后一天last_day()

求出本月的最后一天

last_day(sysdate)

1、to_char字符串转换函数

如:将所有员工的入职日期的年、月分开

注:在划分时需要通配符

年:yyyy  月:mm  日:dd

时:HH 分:mi  秒:ss

定义时间格式

to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)

在10以下的月数前面会默认加上前导零,去除加上fm

to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)

to_char还可以给数字做格式化

如将员工的工资按三位“,”分隔

to_char(工资,“99,999”) 9代表数字

如果想在钱上加上国家符号

美元使用

中文使用l

to_char(工资,“99,999”)

to_char(工资,“l99,999”)

2、to_number数值转换函数,将字符串转换成数值

to_number(“10”) +to_number(“10”)

3、to_date日期转换函数,将字符串数据转换成日期类型

to_date(“1997-05-12”,“YYYY-mm-dd”)  1997/05/12

1、空值处理 nvl

如果在查询的时候存在空值的情况可以使用

nvl(comm,0) 当comm的列值为空时,用0代替

2、decode函数

该函数类似于if ...else if ...else

语法:decode(列名/值,search1,result1,search2,result2,default)

decode(中国,中国,我是中国,美国,我是美国,其他)

如果为中国返回我是中国,为美国返回我是美国,为其他字符则返回其他。

3、case when 与decode差不多

语法 case when city=中国 then 我是中国

          when city=美国 then 我是美国

            else 其他

oracle中 取小数部分函数

select 12.23-ceil(12.23) from dual

--结果 -0.77

select substr(12.23-floor(12.23),2,10) from dual;

--这个东西做不到通用没什么价值

--如果

select substr(12.231111111111111-floor(12.231111111111111),2,10) from dual;

--结果不会是231111111111111,而是2311111111

select ltrim(0.55523-floor(0.55523),'0.') from dual;

--这个比较有代表性

--1

select substr(12.25,instr(12.25,'.')+1,length(12.25)) from dual;

--结果 25

--2

select A.a*power(10,length(A.a)-1) from

(select trunc(12.25333,length(12.25333))-trunc(12.25333,0) a from dual) A

--结果 25333

--方法很多的,看你想怎么个实现方法。最好做成函数,通用一点。

oracle中查询结果中有小数点

你这个问题很好解决,你这个就是因为数值太大了,数据库就采用科学计数法了。

比如你查询上图结果的Select语句是:

SELECT * FROM table;只要在查询前执行:

col item format 999999999999999999999999999;之后再执行查询语句,应该数值就是你想要的数值了。(PS:999999999999999999999999999这个数值可以根据你列的长度来设置)

希望可以帮助你,望采纳!!

oracle去掉数字后面的0

给你做个试验你就知道了

create table test

(id varchar2(6));

insert into test values ('120000');

insert into test values ('120010');

insert into test values ('120200');

insert into test values ('123000');

insert into test values ('123001');

commit;

执行第一遍:

update test set id=substr(id,1,5) where id like '%0';

commit;

此时结果:

执行第二遍:

update test set id=substr(id,1,4) where id like '%0';

commit;

后边就不举例了,也就是语句执行4遍,需要修改里边的参数。


分享名称:oracle怎么去掉小数,oracle 舍去小数
标题网址:http://scyanting.com/article/dscdgop.html