1

oracle如何将整数转换为十进制?有没有像 TO_CHAR 这样的函数?我需要将此函数放在 where 子句中。谢谢

SELECT IDDS,
       ID
FROM   T_TABLEONE
WHERE  CAST(ID as DECIMAL)='1,301131832E19';
4

2 回答 2

1

如果将函数应用于列,则可能会面临以下风险:

  1. 无法在该列上使用常规索引
  2. 模糊结果集的预期基数,这可能导致查询优化问题。

所以这通常是一个不好的做法,你最好将你的文字转换为与列相同的类型,在这种情况下使用 to_number()。

但是在这种情况下,我很惊讶这是必要的,因为 Oracle 在最近版本中的类型转换应该能够处理将整数列与科学计数法表示的数字进行比较:http ://sqlfiddle.com/#!4/336d3 /8

于 2013-05-09T20:13:01.340 回答
0

使用CAST

CAST(myInt AS DECIMAL)
于 2013-05-09T08:14:10.247 回答