0

条件の 1 つが である SQL ステートメントを見つけましたcomp_cd > to_char('0000000000','9999999999')

実行select to_char('0000000000','9999999999') from dualすると、結果「0」が得られます。

誰もこれに出くわしましたか?

4

1 に答える 1

2

この関数TO_CHARは最初のパラメーターとして NUMBER または DATE を想定していますが、'0000000000'代わりに文字列 ( ) を指定しています。

したがって、Oracle は暗黙的な変換を使用して、最初に NUMBER に変換します。'0000000000'に変換され0ます。

次に、TO_CHARはフォーマット モデル0を使用して文字列に変換されます。'9999999999'これにより、次の文字列が生成されます。

'          0'

ついに:

comp_cd > '          0'

2 つの文字列間で字句 (アルファベット) 比較を行います。

于 2013-02-01T04:30:19.030 に答える