日期:2014-05-16  浏览次数:20448 次

Oracle 函数(处理Number)

1.AVG(DISTINCT|ALL)
all表示对所有的值求平均值,distinct只对不同的值求平均值
SQLWKS> create table table3(xm varchar(8),sal number(7,2));
语句已处理。
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('zhu',5555.55);
SQLWKS> commit;

SQL> select avg(distinct sal) from gao.table3;

AVG(DISTINCTSAL)
----------------
???????? 3333.33

SQL> select avg(all sal) from gao.table3;

AVG(ALLSAL)
-----------
??? 2592.59

?

2.MAX(DISTINCT|ALL)
求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;

MAX(DISTINCTSAL)
----------------
??????????? 5000


3.MIN(DISTINCT|ALL)
求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;

MIN(ALLSAL)
-----------
??? 1111.11

?

4.TO_NUMBER
将给出的字符转换为数字
SQL> select to_number('1999') year from dual;

???? YEAR
---------
???? 1999

?

?

5.TRUNC
按照指定的精度截取一个数
SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;

?? TRUNC1 TRUNC(124.16666,2)
--------- ------------------
????? 100???????????? 124.16

?

6.ROUND和TRUNC
按照指定的精度进行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;

ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
???????? 56????????? -55????????? 55????????? -55

?

7.FLOOR
对给定的数字取整数
SQL> select floor(2345.67) from dual;

FLOOR(2345.67)
--------------
????????? 2345

?

8.select distinct Customer_name from T_Customer t where Customer_name is not null