新聞中心
數(shù)值格式化指定了存儲(chǔ)在數(shù)據(jù)庫(kù)中的定點(diǎn)數(shù)和浮點(diǎn)數(shù)的格式。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到共和網(wǎng)站設(shè)計(jì)與共和網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋共和地區(qū)。
函數(shù)中的數(shù)值格式化
以下數(shù)值數(shù)據(jù)類型轉(zhuǎn)換函數(shù)使用了數(shù)值格式化:
- 當(dāng)表達(dá)式、條件、SQL 函數(shù)和 SQL 語(yǔ)句中出現(xiàn) ?
NUMBER?,?BINARY_FLOAT? 或 ?BINARY_ DOUBLE? 時(shí),且您需要它們的值轉(zhuǎn)換為 ?VARCHAR2? 數(shù)據(jù)類型時(shí),需要用 ?TO_CHAR? 函數(shù)的參數(shù)指定這些數(shù)值的格式。 - 當(dāng)表達(dá)式、條件、SQL 函數(shù)和 SQL 語(yǔ)句中出現(xiàn) ?
CHAR? 或 ?VARCHAR2? 時(shí),如果您需要將他們的值轉(zhuǎn)換為 ?NUMBER? 數(shù)據(jù)類型時(shí),需要用 ?TO_NUMBER? 函數(shù)的參數(shù)(暫不支持 ?NLS_NUMERIC_CHARACTERS?)指定這些數(shù)值的格式。如果您需要將他們的值轉(zhuǎn)換為 ?BINARY_FLOAT? 或 ?BINARY_DOUBLE? 時(shí),需要用 ?TO_BINARY_FLOAT? 和 ?TO_BINARY_DOUBLE? 函數(shù)的參數(shù)指定數(shù)值格式。
數(shù)值格式化會(huì)將數(shù)值四舍五入,并取有效數(shù)字位數(shù)。如果某個(gè)值的小數(shù)位數(shù),左邊的有效位數(shù)比格式中指定的位數(shù)高,則用 ?#? 代替該值。如果 ?NUMBER?的正值非常大且無(wú)法以指定的格式表示,則使用無(wú)窮大符號(hào)(?)替換該值。如果負(fù) ?NUMBER? 值非常小且無(wú)法用指定的格式表示,則使用負(fù)無(wú)窮大符號(hào)(-?)替換該值。
數(shù)值格式化的元素
與 Oracle 不同,OceanBase 數(shù)據(jù)庫(kù)數(shù)值格式化元素僅支持標(biāo)準(zhǔn)的數(shù)值格式。下表為 OceanBase 數(shù)據(jù)庫(kù)支持的數(shù)值格式化元素:
|
元素 |
示例 |
說(shuō)明 |
|---|---|---|
.(小數(shù)點(diǎn)) | 99.99 | 返回一個(gè)小數(shù),且小數(shù)點(diǎn)在指定位置。 限制條件:在數(shù)字格式化中,您只能指定一個(gè)小數(shù)點(diǎn)。 |
0 | 0999 9990 | 0999 返回前導(dǎo)零。9990 返回尾隨零。 |
9 | 9999 | 返回具有指定位數(shù)的值。如果為正,則返回帶有有前導(dǎo)空格的數(shù);如果為負(fù),則返回前導(dǎo)負(fù)數(shù)。前導(dǎo)零返回 0,除了零值,定點(diǎn)數(shù)的小數(shù)部分返回零。 |
如果省略格式參數(shù),會(huì)將數(shù)值轉(zhuǎn)為足夠長(zhǎng)的 ?VARCHAR2? 以保留其所有的有效數(shù)字。
示例
執(zhí)行以下語(yǔ)句:
SELECT TO_CHAR(0, '99.99') FROM DUAL;查詢結(jié)果如下:
+--------------------+
| TO_CHAR(0,'99.99') |
+--------------------+
| .00 |
+--------------------+下表顯示了對(duì)不同數(shù)值的 number 按照格式化元素 'fmt' 查詢得到的結(jié)果。
SELECT TO_CHAR(number, 'fmt') FROM DUAL;
|
number |
'fmt' |
Result |
|---|---|---|
0 | 99.99 | '.00' |
+0.1 | 99.99 | '.10' |
-0.2 | 99.99 | '-.20' |
0 | 90.99 | '0.00' |
+0.1 | 90.99 | '0.10' |
-0.2 | 90.99 | '-0.20' |
0 | 9999 | '0' |
1 | 9999 | '1' |
+123.456 | 999.999 | '123.456' |
-123.456 | 999.999 | '-123.456' |
當(dāng)省略'fmt'參數(shù)的時(shí)候:
SELECT TO_CHAR(123.456) FROM DUAL;顯示結(jié)果如下:
+------------------+
| TO_CHAR(123.456) |
+------------------+
| 123.456 |
+------------------+當(dāng)? TO_CHAR ?結(jié)果超過(guò) 40 字節(jié),或者傳入?yún)?shù)為 binary_double/binary_float 類型時(shí),結(jié)果將被轉(zhuǎn)為科學(xué)計(jì)數(shù)法。
例如:
SELECT TO_CHAR(12355555555555555555555555555555555555555555555555) FROM DUAL;顯示結(jié)果如下:
+-------------------------------------------------------------+
| TO_CHAR(12355555555555555555555555555555555555555555555555) |
+-------------------------------------------------------------+
| 1.2355555555555555555555555555555556E+49 |
+-------------------------------------------------------------+
分享名稱:創(chuàng)新互聯(lián)OceanBase教程:OceanBase數(shù)值格式化
本文URL:http://m.5511xx.com/article/ccdchec.html


咨詢
建站咨詢
