<tt id="eol1w"></tt>
  • orcale中的to_number方法使用

     更新時間:2020年12月29日 15:34:18   作者:天堂地址不詳Y  
    這篇文章主要介紹了orcale中的to_number方法使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

    TO_NUMBER函數()是Oracle中常用的類型轉換函數之一,主要是將字符串轉換為數值型的格式,與TO_CHAR()函數的作用正好相反。

    To_number函數的格式如下:

    To_number(varchar2 or char,'format model')

    To_number函數中也有很多預定義的固定格式:

    格式值 含義
    9 代表一個數字
    0 強迫0顯示
    $ 顯示美元符號
    L 強制顯示一個當地的貨幣符號
    . 顯示一個小數點
    , 顯示一個千位分隔符號

    TO_NUMBER用法 將一個字符串轉成數值

    格式:TO_NUMBER(string,format) 即 TO_NUMBER(字符串,格式)

    在“轉換函數:TO_CHAR()用法之一 將一個數值轉化成字符串 ”一文中 TO_CHAR 函數所用格式,都適合本函數。

    例:

    TO_NUMBER('123.45')

    結果

    123.45

    TO_NUMBER('$123,456.78','$999,999.99')

    結果

    123,456.78

    Oracle中to_number()函數的學習

    1、

    Converts a string to the NUMBER data type(將字符串轉換為數字數據類型)
    TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER
    select to_number('00001228') from dual;--to_number('00001228') 1228
    select trunc(to_number('123.123'),2) from dual;

    結果為:123.12

    2、

    Converts a HEX number to FLOAT(轉換一個十六進制數的浮標)
    TO_NUMBER(<value>, <format>);
    SELECT TO_NUMBER('0A', 'XX')
    FROM dual;

    結果為:10

    3、

    Converts a HEX number to DECIMAL(一個十六進制數轉換為十進制)
    TO_NUMBER(<binary_float | binary_double | number>,
    '<hex mask>') RETURN <binary_float | binary_double | number>;
    SELECT TO_NUMBER(100000,'XXXXXXXX')
    FROM dual;

    結果為:1048576

    4、

    --to_number(expr)
    --to_number(expr,format)
    --to_number(expr,format,'nls-param')
     
    select to_number('0123')number1,      --converts a string to number
        trunc(to_number('0123.123'),2) number2,
        to_number('120.11','999.99') number3,
         to_number('0a','xx') number4,    --converts a hex number to decimal
        to_number(100000,'xxxxxx') number5
    from dual;

    補充:oracle中to_number字符串轉數字、max取最大值、dbms_random.value生成隨機數及對小數做截取,四舍五入操作的函數

    oracle中to_number、max、dbms_random.value、trunc、round函數的用法及生成隨機整數的實現方式。

    1、 to_number函數很簡單,就是把字符類型轉換成數字類型。

    select to_number('123.8') from dual;

    select to_number('123') from dual

    2、max函數很簡單,從結果集中取出最大值。下圖為基礎數據。在此基礎上應用max函數。

    3、dbms_random.value(a,b)函數可生成隨機浮點數。

    a指下限,b指上限,將會生成下限到上限之間的數字,但不包含上限,即生成的小數在[a,b)區間。

    4、trunc(3.141592,4)保留小數到小數點后4位,不做四舍五入操作。

    若第二個參數不傳,默認保留整數。

    5、round(3.141592,4)四舍五入到小數點后4位。

    同樣,若第二個參數不傳,默認四舍五入到整數。

    6、隨機生成[1,7]之間的整數, dbms_random.value結合round或者trunc實現。

    但是用select round(dbms_random.value(1,7)) from dual隨機生成[1,7]之間的隨機數是不科學的

    以隨機生成[1,4]之間的隨機數為例,若是這么寫select round(dbms_random.value(1,4)) from dual

    當dbms_random.value(1,4)生成的隨機數在1~1.5之間時round(dbms_random.value(1,4))值為1

    當dbms_random.value(1,4)生成的隨機數在1.5~2.5之間時round(dbms_random.value(1,4))值為2

    當dbms_random.value(1,4)生成的隨機數在2.5~3.5之間時round(dbms_random.value(1,4))值為3

    當dbms_random.value(1,4)生成的隨機數在3.5~4之間時round(dbms_random.value(1,4))值為4

    可見生成1和4的概率為1/6,生成2和3的概率為2/6,所以也就談不上隨機生成了。

    可改成select round(dbms_random.value(0.5,4.5)) from dual,這樣生成每一個數的概率就相同了。

    用round和trunc函數結合dbms_random.value生成隨機數時一定注意這一點。

    建議這種情況直接用trunc,簡單粗暴。

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

    相關文章

    最新評論

    盈利国际彩票 www.service-moto.net:开化县| www.cnmbd.com:长武县| www.ywcswl.com:华容县| www.brilliantgarmentco.com:英吉沙县| www.chansamabut.com:荥经县| www.yadu111.com:汨罗市| www.kxtzsb.com:甘南县| www.poengun.com:博湖县| www.caigangf.com:阳信县| www.rudrayogacentre.com:慈利县| www.xtrunchang.com:黄山市| www.tendainfo.com:延长县| www.andyandnina.com:罗山县| www.xmldzyls.com:黄大仙区| www.howlget.com:读书| www.jnlezuo.com:太和县| www.m3ji.com:普格县| www.daogou001.com:枣强县| www.wearetsk.com:无为县| www.michel-berger.net:新安县| www.126youxiang.com:武汉市| www.bestfoodsrecipe.com:资中县| www.abstractionworks.com:怀柔区| www.crg-x.com:威远县| www.alishaallport.com:德庆县| www.mz733.com:寿宁县| www.eprsdxx.com:高碑店市| www.cleanhouselimpeza.com:富顺县| www.zp335.com:双城市| www.shenqi5150.com:彰化市| www.fedormatsko.com:镇平县| www.onemiletrade.com:大同县| www.cnmjjqj.com:美姑县| www.atcdhaka.com:宁晋县| www.guitarquest.net:新营市| www.alternateexpressions.com:富裕县| www.floridahospitaldls.com:龙南县| www.1314xing.com:纳雍县| www.efemlak.com:新营市| www.bikersforbeth.com:逊克县| www.thehelvetia.com:铜鼓县| www.xyt888.com:信丰县| www.qatarsworldcup.com:渑池县| www.mbkty.cn:齐河县| www.fjmejd.com:南靖县| www.ipodsmart.com:江阴市| www.crecerjuntosmex.com:长春市| www.bjrichhome.com:长宁区| www.slgjys.com:阜平县| www.globalnj.com:东乡族自治县| www.yyqmvip6.com:乐亭县| www.cx13800.com:灵丘县| www.jddedman.com:渝中区| www.gvionlinetraining.com:合江县| www.mhicons.com:凤山市| www.12580lv.com:湖南省| www.valsogtc.com:望谟县| www.hdb001.com:尚志市| www.shstlawyer.com:阆中市| www.dk992.com:乌恰县| www.xx3588.com:陵川县| www.msplg.com:甘德县| www.vintage-denim.com:罗源县| www.casamentocarolebruno.com:福贡县| www.21ahdns.com:壤塘县| www.myo89.com:林州市| www.tynale.com:永康市| www.jiaanhb.com:河西区| www.cuidighlinn.com:江孜县| www.lgmedicine.com:武威市| www.wwwhg1229.com:石柱| www.jtian-168.com:剑川县| www.germanincubator.net:唐海县| www.dlhxsk.com:韶山市| www.gxdz66.com:邯郸市| www.judaicaboutique.com:喀什市| www.ccequinephotography.com:芒康县| www.wsr7.com:微博| www.arcadaproductions.com:灌阳县| www.rijiw.com:韶关市| www.kkfma.com:延寿县| www.yadayang.com:北海市| www.maestroluggage.com:衡水市| www.taiconsult.com:清水县|