• ベストアンサー

OracleのMAX

Oracle9iでvarchar2(3)に半角スペースを含む′01 ′と′002′が存在する場合、MAXでは′01 ′が取れてくるのはなぜでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>なぜでしょう? 文字列として、先頭から1文字つづ比較していくから。 「01 」と「002」を、先頭から1文字づつ比較すると、以下のようになります。 ・1文字目の「0」と、1文字目の「0」を比較、同じなので、2文字目の比較に進む。 ・2文字目の「1」と、2文字目の「0」を比較、「1」の方が大きい。 ・結果が出たので、3文字目は比較しない。 結果「01 」は「002」よりも大きい、となります。 これは、「AB 」と「AAC」を比べたら「AB 」の方が大きい、と言う比較と同じです。

zunda0321
質問者

お礼

なるほど! わかりやくすて助かります(´`*) 回答ありがとうございます

関連するQ&A