这可能是一个小的,但我可以找到任何,看到它是如何..
我有一个包含两列和两行的sqlserver表,其中一列的名称是 Number ,它有两行值
1. c7df055e-f8b5-4fc5-9c0a-8f59624c4022
2. 1234
当我使用此查询select max(Number) from table table_name
它给出结果c7df055e-f8b5-4fc5-9c0a-8f59624c4022
,那么 MAX 如何计算任何值包含字符时的最大值,我已经搜索了这个并找到了这个
For character columns, MAX finds the highest value in the collating sequence.
但是可以理解得更好,所以任何人都应该建议更好的解释..
提前致谢
答案 0 :(得分:5)
整理顺序是指数字代码如何转换为字符的定义。例如,ASCII是一种常见的整理顺序;字节“65”转换为字符“A”,字节“58”转换为字符“8”等。
大多数语言将逐个字符进行比较,比较基础值。因此“c”是99 ASCII,“1”是49 ASCII,所以以“c”开头的字符串将是更大的值。一般来说,小写字母高于大写字母高于数字,其他字符都到处都是。
答案 1 :(得分:4)
您的“数字”列是文本类型(通过alpha和连字符字符的存在来证明)。对于文本类型,排序是字母,字母比数字“高”,因此以“c”开头的值大于以“1”开头的值。
排序与格式无关,如果值:如果字母数字值的第一个字符为零,则最多可以得到“1234”。