Varcharフィールドをdouble(数値)に変換しようとしたときに、クエリに問題があります。私はこのSQL文を持っています:
SELECT fullName, CAST(totalBal as numeric(9,2) FROM client_info ORDER BY totalBal DESC
実際、totalBal
の値を降順で表示したいと思います。しかし、そのフィールドはvarcharであるため、結果セットが間違っている場合があります。これは、次のステートメントを使用してクエリを実行したときの結果セットです。
SELECT fullName, totalBal FROM client_info ORDER BY totalBal DESC
結果セットは次のとおりです。
totalBal
の並べ替えが正しくありません。そこで、varcharを数値に変換して、完全にソートされるようにすることにしました。何か案が?
DECIMAL()
またはNUMERIC()
を使用してください。これらは固定精度およびスケール番号です。
SELECT fullName,
CAST(totalBal as DECIMAL(9,2)) _totalBal
FROM client_info
ORDER BY _totalBal DESC
これはより望ましい場合があります。代わりにfloatを使用します
SELECT fullName, CAST(totalBal as float) totalBal FROM client_info ORDER BY totalBal DESC