答案 0 :(得分:1)
您可能在VARCHAR
列中有数字。在这些字段中排序是alphabetcal order。这样9
大于10
。链接说明:
要确定两个字符串中的哪一个按字母顺序排在第一位,则会比较它们的第一个字母。如果它们不同,则字母表中第一个字母较早的字符串是按字母顺序排在第一位的字符串。如果第一个字母相同,则比较第二个字母,依此类推。如果达到一个位置,其中一个字符串没有更多的字母要比较而另一个字符串,则第一个(较短的)字符串被认为是按字母顺序排在第一位。
您最好的解决方案不是在VARCHAR
列中存储数字,而是使用相应的类型,例如INT
。这样你的查询就会返回正确的结果。
如果这不是您的选项,您可以将列CAST
转换为整数类型。例如,在SQL Server中你会写:
select max(CAST(entry_no AS INT)) from tbl_Invmaster
答案 1 :(得分:0)
select max( to_number( entry_no )) from tbl_invmaster