2014-07-17 58 views
3

有些一個請解釋這一點:Max(char)如何運作?

我有柱

 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 

在十六進制「〜」是7E,那麼爲什麼不「〜」?

+1

您是否期待了另一個結果? –

+0

好問題...想澄清你在做什麼數據庫?我得到了奇怪的感覺有一個不同的答案mssql vs mysql與psql vs oracle – Twelfth

+0

結果應基於您的會話的定義排序順序,因爲它涉及比較:此值>其他值 – dnoeth

回答

7

MAX對字符串列選擇給定歸類中最高的值。我相信所有這些字符串在所有排序規則中都以相同的順序進行比較。更新:在你編輯之後,這不再是這種情況。您已經證明MAX未遵循代碼點順序。

基本上,你得到dictionary order。巧合的是,這恰好是代碼點順序以及這些特定的四個字母。

相關問題