我无法理解为什么以下查询会返回给定的结果。
查询1:
SELECT TO_NUMBER('$1,000.95', '$999,999.999')
FROM dual;
返回1000.95
。
为什么此查询不会返回$1000.95
或$1,000.95
? TO_NUMBER
函数是否会删除所有格式(.
除外)?
查询2:
SELECT TO_NUMBER('1,000.95', '$999,999.999')
FROM dual;
返回ORA-01722: invalid number
。
我想我理解这个 little 更好 - 格式掩码与数字格式不匹配。有没有办法在数字中返回$
(使用CONCAT
或||
除外)?
答案 0 :(得分:3)
函数TO_NUMBER返回一个数字,$字符是ASCII,永远不会在数字字段中表示。要添加$字符,您需要将该数字表示为字符串。
答案 1 :(得分:-1)
SELECT TO_NUMBER('$1,000.95', 'L999G999D999') FROM dual;