一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - orcale中的to_number方法使用

orcale中的to_number方法使用

2021-02-21 17:00天堂地址不詳Y Oracle

這篇文章主要介紹了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、

?
1
2
3
4
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、

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

結果為:10

3、

?
1
2
3
4
5
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、

?
1
2
3
4
5
6
7
8
9
10
--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;

orcale中的to_number方法使用

補充: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函數。

orcale中的to_number方法使用

orcale中的to_number方法使用

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

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

orcale中的to_number方法使用

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

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

orcale中的to_number方法使用

orcale中的to_number方法使用

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

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

orcale中的to_number方法使用

orcale中的to_number方法使用

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

 

orcale中的to_number方法使用

orcale中的to_number方法使用

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

orcale中的to_number方法使用

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

原文鏈接:https://blog.csdn.net/tiantangdizhibuxiang/article/details/81034893

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 五月色综合婷婷综合俺来也 | 国产在线观看福利片 | 免费观看在线观看 | 日本mature乱子视频 | asspics大尿chinese | 国产hd老头老太婆 | ai换脸杨颖被啪在线观看 | 人人爽人人看 | 国产高清在线精品一区 | 欧美日韩国产手机在线观看视频 | 国产图色| 亚洲国产日韩欧美mv | 三级网站午夜三级 | 男人天堂中文字幕 | 天天爽视频 | 国产精品久久久久毛片真精品 | 丝瓜视频黄色在线观看 | 欧美视频在线一区二区三区 | 国产精彩对白综合视频 | 娇小性色| 欧美美女被艹 | 精品国产自在现线久久 | 俄罗斯freeoo性另类 | 亚洲色图亚洲色图 | 暖暖 免费 高清 日本 在线1 | 国内永久第一免费福利视频 | 韩国三级在线高速影院 | 69老司机亚洲精品一区 | 好爽好舒服视频 | 亚洲国产区男人本色在线观看欧美 | 欧美一区二区三区成人看不卡 | 欧美一区二区三 | 小早川怜子在线播放精品 | 国产aaa伦理片 | 欧美专区在线观看 | 免费刷10000名片赞网站 | 日本免费观看的视频在线 | 精品亚洲视频在线 | 国产高清视频在线 | 日本亚欧乱色视频在线观看 | 黑人干我 |