昨朝、マネージャーから新しいデータベースが提供され、SQLストアドプロシージャをいくつか作成する必要がありました。数値用の列MMがあったので、SQL関数MAXが機能することを理解しました。しかし、そうではありませんでした。
これは、1から41までランダムに格納された数値を保持するvarchar列でした。SQLステートメント「SELECTMAX(MMS)FROM tbl」は、結果として41を返すと想定していましたが、9になりました。
後で、文字列データ型で使用する場合にMAXを投資して、列から最初の数字を取得し、それらからMAXを取得します。
なぜそれが起こっているのか誰かが知っていますか?