oracle的TO_NUMBER函数
TO_NUMBER(x [, format], [ nls_language ]) converts x to a NUMBER.
- x is the string that will be converted to a number. x是将要被转换成number的字符串。
- format, optional, is the format that will be used to convert x to a number. format,可选项,是用来将x转换成number的格式。
- nls_language, optional, is the nls language used to convert x to a number. nls_language,可选项,是nls语言,用来将x转换成number。
Number Format Elements:
| Element | Example | Description |
|---|---|---|
| , . | 1,234.56 | Commas and decimal points 逗号和小数点 |
| $ | $123.45 | Leading dollar sign. 前置$符号 |
| 0 | 0012.34 | Leading or trailing 0. 前置或后置0 |
| 9 | 123 | Any digit. 任意数字 |
| B | B123 | Leading blank for integers. integer类型前置空白符 |
| C | C123 | The ISO currency symbol defined in the NLS_ISO_CURRENCY parameter.定义在NLS_ISO_CURRENCY参数中的国际标准货币符号 |
| D | 123D99 | The current decimal character defined in the NLS_NUMERIC_CHARACTERS parameter. The default value is a period. |
| EEEE | 1.2EEE | Returns a value in scientific notation.用科学计数法表示返回值 |
| G | 9G123 | Returns the group separator (e.g., a comma). |
| L | L123 | Returns the local currency symbol. |
| MI | 123MI | negative value with trailing minus sign; returns positive value with a trailing blank. |
| PR | 123PR | The negative values in angle brackets. |
| RN | I | values in Roman numerals, uppercase. |
| rn | i | values in Roman numerals, lowercase. |
| S (prefix) | S1234 | negative values with a leading minus sign, positive values with a leading positive sign. |
| S (suffix) | 1234S | negative values with a trailing minus sign, positive values with a trailing positive sign. |
| TM | TM | The text minimum number format model returns the smallest number of characters possible. |
| U | U123 | the Euro currency symbol or the NLS_DUAL_CURRENCY parameter. |
| V | 123V99 | a value multiplied by 10n, where n is the number of 9s after the V. |
| X | XXXX | the hexadecimal value.十六进制值 |
SQL> select to_number(‘123.45‘) from dual;
TO_NUMBER(‘123.45‘)
-------------------
123.45
SQL> select to_number(‘123.45‘, ‘9999.99‘) from dual;
TO_NUMBER(‘123.45‘,‘9999.99‘)
-----------------------------
123.45
SQL> select to_number(‘12‘, ‘99‘) from dual;
TO_NUMBER(‘12‘,‘99‘)
--------------------
12
SELECT TO_NUMBER(‘$12,123.23‘,‘$999,999.99‘) FROM DUAL;
SQL>
SQL>
SQL>
SQL>
Do calculation after the conversion
SQL> select to_number(‘123.45‘) + 2 from dual;
TO_NUMBER(‘123.45‘)+2
---------------------
125.45
SQL> SELECT TO_NUMBER(‘-$12,345.67‘, ‘$99,999.99‘) FROM dual;
TO_NUMBER(‘-$12,345.67‘,‘$99,999.99‘)
-------------------------------------
-12345.67
SQL>
文章来自:http://www.cnblogs.com/itzfz/p/5583185.html