1

次のようなテーブルがあります。IDは数値列で、TotalはVarchar(20)です。テーブル名はordersです。

ID       Total

1        $10

2        $1,000

3        $1500.50

4        300

5        20.50

6        -80

を通して

SELECT statement I would like to get the Id of the highest total i.e 3. 

SELECT ID, MAX(CONVERT(Total, SIGNED INTEGER)) AS total FROM orders 

合計は最高ですが、IDが正しくありません。

($)ドル記号とカンマは無視したいのですが(,)

4

3 に答える 3

3

ただ使う MAX(CONVERT(replace(replace(total,',',''),'$',''), SIGNED INTEGER)) AS total

于 2012-12-20T05:20:35.373 に答える
2

クエリは次のようになります。それは機能します、私もそれを使用しました。

これを試して:

SELECT MAX(CONVERT({column_name}, SIGNED INTEGER)) AS {column_name or xyz_name} from {table_name} 
于 2015-03-13T09:16:41.403 に答える
1

VARCHAR フィールドに金額を格納することは、トラブルを求めているように聞こえます。

$数値に変換する前に先頭の使用を削除しようとすることはできますがREPLACE、それでも間違っています。

スキーマを修正し、金額を適切に入力された列に格納してください。これらの問題は発生しません。

于 2012-12-20T05:24:20.707 に答える