-1

文字列として記述された日付の問題はまだ修正されていません。ここでは別の問題が発生します。
数字のみが書かれたテキスト列があります(テキストのように)。
関数 MAX を使用すると、9 が 30 より大きいため、間違った結果が得られます
。VAL や CINT などのインライン関数、または SELECT、MAX などのクエリで数値のようなテキスト データ (数値のみ) を比較して使用できるものはありますか? ?

次の例のようになります。

 mCmd = New OdbcCommand("SELECT MAX(myTextColumn) FROM " & myTable, mCon)
4

2 に答える 2

2

使用する必要がありますmax(to_number(myTextColumn, '999999'))

詳細はマニュアルにあります: http://www.postgresql.org/docs/current/static/functions-formatting.html

すべての「数値」が整数の場合は、キャスト演算子も使用できます。max(myTextColumn::int)

テキスト値が適切にフォーマットされている場合は、単純に double にキャストできます'3.14'::numeric

テキストが言語設定に従って書式設定されていない場合はto_number()、小数点記号を含む書式マスクを使用する必要があります。to_number('3.14', '9.99')

于 2013-01-04T10:55:47.337 に答える
1

MAX をうまく機能させるには、まずテキスト フィールドを数値形式に変換する必要があります。

mCmd = New OdbcCommand("SELECT MAX(TO_NUMBER(myTextColumn, '99999')) FROM " & myTable, mCon)
于 2013-01-04T10:56:36.353 に答える