ORACLE初學第六篇(數值型別及函式)
阿新 • • 發佈:2018-12-30
數值型別及函式
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
下一篇進入日期類的學習