Max(char)真的如何运作?

AAH*_*oot 3 sql t-sql sql-server

有人请解释一下:

我有专栏

        c_1
        ----
         A
         P
         H
         D

    Why?

    SELECT MAX(c_1) 
    FROM tbl_1 

Returns 
----
 P
Run Code Online (Sandbox Code Playgroud)

我只能假设为十六进制:A = 41,P = 50,H = 48,D = 44; 因此P是最大值.

情况并非如此,因为如果我有的话

        c_1
        -----
         A
         |
         }
         ~

  Returns

   -----
     A
Run Code Online (Sandbox Code Playgroud)

在Hex'〜'是7E,为什么不'〜'?

usr*_*usr 7

MAX在字符串列上选择给定排序规则中最高的值.我相信所有这些字符串在所有排序规则中都以相同的顺序进行比较.更新:编辑后不再是这种情况.您已经证明MAX不遵循代码点顺序.

基本上,你得到字典顺序.巧合的是,这恰好也是这些特定四个字母的代码点顺序.