Max(char)真的如何运作?

时间:2014-07-17 19:55:22

标签: sql sql-server tsql

有人请解释一下:

我有专栏

        c_1
        ----
         A
         P
         H
         D

    Why?

    SELECT MAX(c_1) 
    FROM tbl_1 

Returns 
----
 P

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

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

        c_1
        -----
         A
         |
         }
         ~

  Returns

   -----
     A

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

1 个答案:

答案 0 :(得分:7)

字符串列上的

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

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