この状況は、invoice_number
テキスト列として保存されます。例: varchar(10)
。その場合、アルファベット順に9が最大値になります。
理想的には、数値演算を実行する値を数値データ型として格納する必要があります。 int
。ただし、何らかの理由で列のデータ型を変更できない場合は、MAX
を適用する前に列をキャストしてみてください。 、そのように:
select max (convert(invoice_number, signed integer)) as maxinv from invoice
注:「数値演算を実行する値」について具体的に説明します。 入力テキストが電話番号やクレジットカード番号など完全に数値である場合もありますが、2つの電話番号を追加したり、クレジットカード番号の平方根を取得したりするシナリオはありません。このような値はテキストとして保存する必要があります。