如何在oracle中将整数转换为十进制

时间:2013-05-09 08:11:18

标签: oracle integer decimal

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

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

2 个答案:

答案 0 :(得分:1)

如果将某个功能应用于该列,则可以运行以下风险:

  1. 无法在该列上使用常规索引
  2. 模糊了结果集的预期基数,这可能导致查询优化问题。
  3. 所以这通常是一种不好的做法,你最好将你的文字投射到与列相同的类型,在这种情况下使用to_number()。

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

答案 1 :(得分:0)

使用CAST

CAST(myInt AS DECIMAL)