数值类型及函数
number 是 oracle 中的数据类型;number(precision,scale); Precision,scale 均可选;
Precision 代表精度,sacle 代表小数位的位数;Precision 范围[1,38] scale 范围[-84,127] 举例:
12345.678 Precision 是 8 scale 是 3;
number(6,3)类型和number(6,-3)类型插入数据的结果如下:
SQL>
SQL> insert into a2 values(1,'xiao','2222',123.4556,1234.5678);
1 row inserted
SQL> select * from a2 where id=1 and name='xiao';
ID NAME PASSWORD EG EG_EG
---------- -------------------- -------------------- -------- --------
1 xiao 2222 123.456 1000
//number(6,3)类型时,插入像23.67:前后会自动补全前面补空格小数点后面不足三位补充0
//number(6,-3)类型时,插入像123.456数据,小数点前面不足四位数值为0
//小数点前面有四位数及以上第四位以前的都变为0像1234.567插入数据库数据将变成1000刚好解释上面的例子
一、数值求绝对值以及取整函数
//abs()函数
应用例子:
select abs(n1) from t_number where id=1;
//round()函数四舍五入
select round(n1,2) from t_number where id=1;//解释:round(n1,2)中的第二个参数2为小数的位数如果只有一个参数像round(n1)默认就没有小数了
//向上取整ceil()
select ceil(12.4) from dual;//输出13
select ceil(-12,3)from dual;//输出-12 ***!注意***
//向下取整floor()
select ceil(12.4) from dual;//输出12
//取模函数mod(5,3)
select mod(5,3) from dual;//输出2
//正负函数sign()
select sign(0)from dual;//输出0
select sign(-12)from dual;//输出-1
select sign(212)from dual;//输出1
二、其他函数
Sqrt() 求平方根:select sqrt(9) from dual;
Power()求乘方:select power(2,3) from dual;
> SQL> select power(2,10)from dual; POWER(2,10)
> -----------
> 1024
//截取函数trunc()第二个参数是截取小数的个数
> SQL> select trunc(123.456,2) from dual; TRUNC(123.456,2)
> ----------------
> 123.45
三、to_char()格式化数值函数
//为了美观前后补全零。
> SQL> select to_char(123.456,'0000.0000') from dual;
> TO_CHAR(123.456,'0000.0000')
> ----------------------------
> 0123.4560
***如果多了就会随便弄数据***例如:
> SQL> select to_char(22123.456,'0000.0000') from dual;
> TO_CHAR(22123.456,'0000.0000')
> ------------------------------
> ##########
-----------99999的形式--------------------
//如果是99999替代的话,小数部分不足补充零整数部分不补充
> SQL> select to_char(123.456,'9999.9999') from dual;
> TO_CHAR(123.456,'9999.9999')
> ----------------------------
> 123.4560
----------------999,999,999逗号分隔的形式------------------
> SQL> select to_char(12123.456,'99,999,999.9999') from dual;
> TO_CHAR(12123.456,'99,999,999.
> ------------------------------
> 12,123.4560
------------FM99,999,999去空格的形式小数后面有零也会去掉--------------
------------------$的形式---------------------
> SQL> select to_char(12123.456,'$99,999,999.9999') from
> dual; TO_CHAR(12123.456,'$99,999,999
> ------------------------------
> $12,123.4560
中文的¥可以用L来实现
>SQL> select to_char(12123.456,'FML99,999,999.9999') from
> dual; TO_CHAR(12123.456,'FML99,999,9
> ------------------------------
> ¥12,123.456
FM上面讲过的这里不多做解释了
------------C显示具体的货币-------------------
> SQL> select to_char(12123.456,'FM99,999,999.9999C') from dual;
> TO_CHAR(12123.456,'FM99,999,99
> ------------------------------ 12,123.456CNY
下一篇进入日期类的学习