1

Oracleで整数を10進数に変換するにはどうすればよいですか? 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 に答える