<font id="nc9yk"></font>
  • <tt id="nc9yk"></tt>
          <rp id="nc9yk"><optgroup id="nc9yk"></optgroup></rp>
          <tt id="nc9yk"><form id="nc9yk"></form></tt>

            <cite id="nc9yk"></cite>

            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,簡單粗暴。

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

            相關文章

            最新評論

            hao500彩票 www.fzu123.com:琼海市| www.chmian.com:恩施市| www.aganinsuranceagency.com:子洲县| www.hangangcamp.com:江永县| www.huanxiangtong.com:玉树县| www.hao-jiazheng.com:东辽县| www.associazionesimbiosigratteri.com:洛浦县| www.xrwjw.cn:吉安市| www.i-infidelity.com:通化市| www.ipodsmart.com:清苑县| www.023mv.com:桃源县| www.xirunjiaoyu.com:曲水县| www.wwwmamma.com:盘锦市| www.gzgwg.com:隆子县| www.name-com.com:苏尼特右旗| www.nogoum-b.com:屏东市| www.hotmusicpick.com:崇左市| www.0459d.com:瑞昌市| www.obg1.com:玉林市| www.yupaixieye.com:平顺县| www.cheapvegasairfares.com:中山市| www.wwwhg9227.com:迭部县| www.cindyy.com:尚义县| www.dasantrola.com:普陀区| www.hysmzx.com:云阳县| www.catherinebroad.com:安泽县| www.myumldesigner.com:金华市| www.ryhjw.cn:滨海县| www.specificatii.com:通辽市| www.salmonbc.com:科技| www.newhavenph.com:静海县| www.acmap2019.com:乌兰浩特市| www.caitaocongtrinh.com:任丘市| www.henerhq.com:潜江市| www.zhouyuzheng.com:嘉祥县| www.ycmyxs.com:博乐市| www.teddyoung.org:星子县| www.xnrkjsw.com:柳州市| www.hg34678.com:邢台市| www.xianglinhe.com:长沙市| www.ukvapez.com:德江县| www.rememberforeverphotography.com:南川市| www.carbonsilver.com:舒兰市| www.bjhbyhdx.com:永修县| www.thesokolcompany.com:阳春市| www.pastelperfecto.com:正定县| www.sqctwh.com:报价| www.f2767.com:汨罗市| www.dennisforhire.com:孟津县| www.mocle360.com:三门县| www.wfyulong.com:新巴尔虎左旗| www.antonionicosia.com:怀化市| www.xczc1.com:镇江市| www.globtacs.com:望都县| www.ems188.com:福贡县| www.fundacaoaristidesdesousamendes.com:河北区| www.braedenarnold.com:武功县| www.imeldats.com:周宁县| www.guitar-building.com:邮箱| www.gtparking.com:绥棱县| www.berthonkravtsova.com:奇台县| www.hg39799.com:满洲里市| www.u-lott.com:拜城县| www.hg34678.com:盐山县| www.jsjingming.com:抚顺市| www.avancemosconosur.org:林州市| www.wangshangyouxi.com:巴南区| www.cawwatches.com:黄冈市| www.reward-risk.com:隆回县| www.dj-ruki.com:伊春市| www.curlytoppipeco.com:临洮县| www.relacjelive.net:大丰市| www.kylegreerrocks.com:皮山县| www.fusheng1bet.com:句容市| www.theeconomicsbook.com:冀州市| www.kd933.com:建瓯市| www.zhongxulawyer.com:新疆| www.sweetnthings.com:黄骅市| www.cp3380.com:长汀县| www.881501.com:玛曲县| www.s6lt.com:西贡区| www.davidmshapiro.com:林口县| www.michaeltrevillion.com:兴化市| www.otunetwork.com:逊克县|